Você está na página 1de 24

Manipulando o Banco de Dados

Relembrando
O Rails usa a arquitetura MVC
No MVC, os Models so responsveis pelo Banco de
Dados, e por sua lgica

Models geralmente possuem nomes no


singular, ao passo que as tabelas que eles
representam no Banco de Dados
geralmente possuem nomes que esto no
plural.

rails generate model product name description:text price:float

Criando um Model

rails generate aciona um gerador do Rails

model especifica o que queremos gerar

product o nome do model que desejamos criar

name, description e price atributos deste model, ou


seja, colunas do Banco de Dados. possvel
especificar o tipo de cada coluna de um model.

O que foi gerado

db/migrate/20160122134218_create_products.rb

app/models/product.rb

test/models/product_test.rb

test/fixtures/products.yml

O comando rails generate model no cria


a tabela do model no Banco de Dados. Ao
invs disto, ele cria uma migration com
todas as informaes deste novo model.

class CreateCursos < ActiveRecord::Migration


def change
create_table :cursos do |t|
t.string :nome
t.text :descricao
t.integer :vagas

end

end

end

t.timestamps null: false

Migrao a forma
onde o Rails
versiona o banco
de dados.

Atravs do sistema de migrations do Rails,


possvel executar uma nova alterao, ou
voltar atrs, caso o resultado no tenha
sido o esperado.

Para inserir um model no


Banco de Dados, preciso
executar uma migrao.

rake db:migrate
Insere todas as migraes pendentes no Banco de Dados

rake db:rollback
Desfaz a ltima migrao inserida no Banco de Dados

Voltando vrias migraes ao mesmo tempo

rake db:rollback STEP=3

Neste caso, desfaz as trs ltimas migraes inseridas no Banco de Dados

Semeando informaes no
Banco de Dados

O Rails possibilita que insiramos


informaes no Banco de Dados de forma
dinmica. Tal ao pode ser chamada de
semear.

db/seeds.rb

for cont in 1..10


Produto.create({ nome: "Produto #{cont}", descricao: "Descrio #{cont}", preco: cont + 5.5 })

end

Rails console
rails console ou rails c no terminal

Usando o rails console, possvel manipular


informaes do banco de dados.

Setando na varivel user o primeiro usurio do sistema


user = User.first

Setando o nome do primeiro usurio (user) para Paulo Silas


user.name = 'Paulo Silas'

Salvando as alteraes
user.save

Criando usurios
User.create({ name: 'Paulo Souza', role: 'Administrator', email: 'psss04@outlook.com', password: 'tester' })

Vendo a quantidade de usurios cadastrados


User.count

Selecionando todos usurios administradores


User.where("role = 'Administrator'")

possvel entrar no SGBD usado pelo


projeto Rails atravs do comando rails db.

Validaes por tipo


validates_presence_of :name
validates_uniqueness_of :email
validates_numericaly_of :cellphone
validates_length_of :cpf, is: 11, message: O CPF deve ter 11 nmeros.
validates_length_of :biography, minimum: 5, maximum: 120, too_long: Mensagem 1., too_short: Mensagem 2.
validates_format_of :biography, without: /palavrao1/, message: Por favor, no inclua palavres em sua biografia.

Validaes por campo

validates :name, presence: true, length: { minimum: 3, maximum: 80 }, uniqueness: true


validates :biography, format: { without: /palavrao2/ }
validates :email, presence: true, email: true

Exerccios #1
1. course

3. product

a.

name

a.

name

b.

description

b.

description

c.

teacher

c.

price

d.

brand

2. post

4. book

a.

title

b.

content

a.

title

c.

author

b.

author

d.

likes_count

c.

sumary

d.

literary_genre

Exerccios #2
5.

6.

user

7.

car

a.

name

a.

model

b.

username

b.

color

c.

biography

c.

price

d.

email

d.

category

e.

password

e.

year

f.

genre

f.

potency

immobile

8.

watch

a.

address

a.

model

b.

rooms_number

b.

brand

c.

old_owner

c.

material

d.

price

d.

price

Você também pode gostar