JavaFree.org | RubyOnBr.org

diferenciar 2 associações

Acompanhar diferenciar 2 associações 5 posts, 3 participantes

Avatar andre 14 posts

Meus caros, estou com uma dúvida na hora de diferenciar 2 associações entre 2 tabelas. Deixa eu explicar melhor pra ver se alguém sabe ajudar.

Tenho por exemplo uma tabela users e uma tabela grupos. O usuário é o dono/criador do grupo (has_many :grupos) e também está inscrito em vários grupos (has_and_belongs_to_many :groups). Como devo proceder para diferenciar essas associações e poder fazer uma consulta dos grupos que esse usuário é dono e também os grupos que ele está inscrito?

Obrigado desde já.

 
Avatar andre 14 posts

talvez eu mesmo tenha resolvido minha dúvida.
Dei dois nomes diferentes para as associações e mudei as convenções.
por ex:
has_many :gruposcriados, :class_name => “Grupo”, :foreign_key => “owner_id”
has_and_belongs_to_many :grupos
:class_name => “Grupo”,
:join_table => “inscricoes”,
:foreign_key => “user_id”,
:association_foreign_key => “group_id”

se existir sugestão melhor favor postarem aqui.
Gracias!

 
Avatar Roberto Soares 69 posts

Não vejo melhor solução que a sua.

t+!

 
Avatar andre 14 posts

Já que a participação está pouca vou conversando comigo mesmo.
Será que é melhor criar um modelo inscrições, deixando de usar o HABTM e passando a usar has_many :inscricoes e :belongs_to :inscricoes mesmo a tabela tendo soh os campos user_id e group_id?

Acho que li por ai que isso está sendo aconselhado mas não estou certo. Aguardo comentário das feras!

 
Avatar Mereghost 1476 posts

Andre:

Os grupos podem ter mais de um dono? Tem um esquema de associação da tabela com ela mesma no Active Record, mas não lembro de cabeça. Vou dar uma cavocada amanhã de manhã e posto.

EDIT: Só para dar uma esclarecida, assim na tabela de associação do grupo com o usuário tu pode identificar se ele é membro ou owner.