Galera, sempre tive uma dúvida que pode ate ser besta, mas que me martela a cabeça:
Para que serve colocar o relacionamento nos models do rails?
tipo: belongs_to, has_many, etc… Se é nescesário coloca-los nas migrations?
Galera, sempre tive uma dúvida que pode ate ser besta, mas que me martela a cabeça:
Para que serve colocar o relacionamento nos models do rails?
tipo: belongs_to, has_many, etc… Se é nescesário coloca-los nas migrations?
Os relacionamentos no Rails são necessários para expressar o relacionamento natural entre as entidades.
Por exemplo, se um vendedor tem várias vendas, expressamos esse relacionamento da seguinte forma:
[code]class Vendedor < ActiveRecord::Base
has_many :vendas # Um vendedor tem várias vendas
end
class Venda < ActiveRecord::Base
belongs_to :vendedor # Uma venda pertence a um vendedor
end[/code]
O ganho prático é que você agora tem um atributo vendas na classe Vendedor que retorna um array contendo todas as vendas:
[code]vendedor = Vendedor.where(:nome => ‘Romulo’)
vendedor.vendas[/code]
Da mesma forma, você ganha um atributo na classe Venda que retorna a instância do vendedor associado a ela:
[code]venda = Venda.first
venda.vendedor[/code]
Esse relacionamento é expresso também nas migrações, pois a tabela de vendas precisa ter um campo que armazene o vendedor associado.
[code]create_table :vendas do |t|
t.references :vendedor
end[/code]
Muito obrigado tnaires!!
Achei aqui um guia que irá ajudar quem tem essa mesma dúvida e outras do tipo: http://guias.rubyonrails.pro.br/association_basics.html
Se você souber inglês, recomendo que você abandone essa tradução e leia o original. Essa tradução está desatualizada.
http://guides.rubyonrails.org/