У меня есть следующие настройки:Как мне сделать несколько ассоциаций has_and_belongs_to_many между теми же двумя классами?
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
С помощью этой установки можно сделать такие вещи, как Publication.first.authors
. Но если я хочу перечислить все публикации, в которых участвует человек Person.first.publications
, ошибка в таблице отсутствия соединения people_publications
, которую она выбрала. Как я могу это исправить?
Должен ли я переключаться на отдельные модели для авторов и редакторов? Однако это приведет к некоторой избыточности базы данных, поскольку человек может быть автором одной публикации и редактором другой.
has_and_belongs_to_many: authored_publications,: class_name => "Публикация",: join_table =>: authors_publications –
has_and_belongs_to_many: edited_publications,: class_name => "Публикация" ,: join_table =>: editors_publications –