Вы можете сделать это, создав модель в середине этой ассоциации, вместо использования has_and_belongs_to_many
. Из-за отсутствия лучшего названия я бы назвал эту модель Authorship
, и она бы выглядела так:
class Authorship < ActiveRecord::Base
belongs_to :author
belongs_to :book
end
Тогда вы бы определили ассоциации в вашей Author
модели с книгами следующим образом:
class Author < ActiveRecord::Base
has_many :authorships
has_many :books, :through => :authorships
end
И наоборот, в вашей Book
модели:
class Book < ActiveRecord::Base
has_many :authorships
has_many :authors, :through => :authorships
end
Таким образом, вы по-прежнему будете иметь желаемую функциональность «имеет и принадлежит многим», за исключением того, что теперь вы сможете получать доступ к записям в таблице объединения через вновь созданную модель.