0

has_many スルーのチェックボックスが保存されない理由がわかりません。これはかなり複雑なフォーム (語学サマー プログラムのオンライン申請) であるため、通常の申請者情報に加えて、fields_for を使用して LanguageBackgroundAndInterest モデルの属性を収集しています。これらの属性の一部は、申請者が言語を学ぶために使用した本です。コードは次のようになります。

    <%= f.fields_for :language_background_and_interest do |builder| %>
      <div class="field"> 
      <%= hidden_field_tag "language_background_and_interest[book_ids][]" %>
      <% Book.all.each do |book| %>
        <br><%= check_box_tag "language_background_and_interest[book_ids][]", book.id %>
        <%= book.name.humanize %>
      <% end %>
      </div>
    <% end %>

language_background_and_interest と books の両方が、次のように has_many_through を使用して結合されます。

class LanguageBackgroundAndInterest < ActiveRecord::Base
  attr_accessible :book_ids

  has_many :language_background_books
  has_many :books, through: :language_background_books
end

class Book < ActiveRecord::Base
  attr_accessible :name, :publisher

  has_many :language_background_books
  has_many :language_background_and_interests, through: :language_background_books
end

# Join Table
class LanguageBackgroundBook < ActiveRecord::Base
  attr_accessible :language_background_and_interest_id, :book_id
  belongs_to :language_background_and_interest
  belongs_to :book
end

チェックボックスの本が適切な背景モデルに割り当てられない理由がわかりません。何か案は?

PS: 確かに、このデザインはかなりあいまいです (本を申請者のものにしないのはなぜですか?) が、私は現在プロトタイプを作成したいと思っており、疑わしい要件にも制約されています。だから私はこれが機能する必要があります。

4

1 に答える 1

0

私は自分のモデル設計を見直して単純化しました。また、複雑なフォームでの作業を容易にするために、Simple Form に切り替えました。

于 2013-01-10T17:35:49.850 に答える