Relacionamentos

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’)

Acessando as vendas do vendedor

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

Acessando o vendedor da venda

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/