J'ai la configuration suivante:Comment faire plusieurs has_and_belongs_to_many associations entre les deux mêmes classes?
class Publication < ActiveRecord::Base
has_and_belongs_to_many :authors, :class_name=>'Person', :join_table => 'authors_publications'
has_and_belongs_to_many :editors, :class_name=>'Person', :join_table => 'editors_publications'
end
class Person < ActiveRecord::Base
has_and_belongs_to_many :publications
end
Avec cette configuration, je peux faire des choses comme Publication.first.authors
. Mais si je veux lister toutes les publications dans lesquelles une personne est impliquée Person.first.publications
, une erreur sur une table de jointure manquante people_publications
a été levée. Comment pourrais-je résoudre ce problème? Est-ce que je devrais peut-être passer à des modèles séparés pour les auteurs et les éditeurs? Cela introduirait cependant une certaine redondance dans la base de données, puisqu'une personne peut être l'auteur d'une publication et l'éditeur d'une autre publication.
has_and_belongs_to_many: authored_publications,: class_name => "Publication",: join_table =>: authors_publications –
has_and_belongs_to_many: edited_publications,: class_name => "Publication" ,: join_table =>: editors_publications –