我有以下型号
# Database fields: id, name
Book < ActiveRecord::Base
has_many :books_selections
has_many :selections, :through => :books_selections
# Database fields: id, name
Selection < ActiveRecord::Base
has_many :books_selections
has_many :books, :through => :books_selections
attr_accessible :books_attributes
accepts_nested_attributes_for :books
# Database fields: book_id, selection_id
Books_Selection < ActiveRecord::Base
belongs_to :book
belongs_to :selection
这里的选择是书籍的集合,但是因为书籍可以在多个选择中,所以我使用带有连接表的双 has_many 结构。请注意,连接表没有“id”属性,这是一个问题吗?
我尝试让我的“选择创建”操作直接将多本现有书籍与其关联。在视图中,我动态创建输入元素,例如以下最终 html:
<input type="hidden" name="selection[books_attributes][id]" value="5" />
<input type="hidden" name="selection[books_attributes][id]" value="9" />
Selection控制器的Create方法里面没有具体的代码,只是:
@selection = Selection.new(params[:selection])
当新视图被提交时,选择被创建(作为一个模型),但书籍与它没有关联。如何解决?