Я не маэстро рельсов, но есть два способа сделать это, о которых я знаю: has_many :through
и has_and_belongs_to_many
. Эта статья имеет хороший обзор того, как. Я подозреваю, что вы захотите использовать has_many :through
, чтобы вы могли беспрепятственно обращаться к данным в таблице соединений.
Для генерации промежуточной модели вы должны сделать что-то вроде:
script/generate model checkouts person_id:int, book_id:int, checked_out:date, returned:date
В вашей модели Book вы бы добавили (знает ли Rails Person -> "People"? Я думаю, да):
has_many :people, :through => :checkouts
has_many :checkouts, :dependent => true
В вашей модели Person вы бы добавили:
has_many :books, :through => :checkouts
has_many :checkouts, :dependent => true
В вашей модели Checkout (извините, я переименовал ее из вашего примера) вы добавили бы:
belongs_to :person
belongs_to :book
Будьте осторожны с моими примерами - я ухожу из памяти.