rstt/ArvoresBrasil — Issue #7: Como uso uma mesma tabela para dois has_many ?
Author: rstt
Created: 2011-12-21 22:03:23+00:00
State: open

A imagem do modelo do BD pode ajudar a entender:
http://www.flickr.com/photos/72576907@N03/6550953969/

No model/arvore faço da seguinte forma:

1)
has_many :arvore_parte_caracteristicas
has_many :partes, :through => :arvore_parte_caracteristicas, :group => :parte_id
has_many :caracteristicas, :through => :arvore_parte_caracteristicas
2)
has_many :arvore_parte_produtos
has_many :partes, :through => :arvore_parte_produtos, :group => :parte_id
has_many :produtos, :through => :arvore_parte_produtos

Deixando apenas o (1) ...
Na view arvores/show.html.erb

Características:

<% @arvore.partes.each do |parte| %>
<%= parte.nome %>

<% parte.caracteristicas.each do |caracteristica| %>
:: <%= caracteristica.caracteristica_tipo.nome %> - <%= caracteristica.nome %>

<% end %>
<% end %>

Mas ao colocar o (2) isso para de funcionar....

Como uso uma mesma tabela (Partes) para dois has_many ?