私は次のモデルを持っています
# 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
ここで、Selectionは本のコレクションですが、本は複数の選択に含まれる可能性があるため、結合テーブルでdoublehas_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])
新しいビューが送信されると、選択範囲が(モデルとして)作成されますが、ブックはそれに関連付けられていません。これはどのように解決できますか?