私は次のように2つのモデルを設定しました:
class Sector < ActiveRecord::Base
attr_accessible :summary, :title, :sector_ids
belongs_to :platform
end
と
class Platform < ActiveRecord::Base
attr_accessible :name, :url
has_many :sectors
end
そして、ここからの例を次のように使用しようとするフォーム:
<%= simple_form_for @platform, :html => { :class => 'form-vertical'} do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<div class="row-fluid">
<div class="span12">
<div class="span6">
<%= field_set_tag "General" do %>
<%= f.input :name %>
<%= f.input :url %>
<%= f.collection_check_boxes :sector_ids, Sector.all, :title, :title %>
<% end %>
</div>
</div>
</div>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
それでも、フォームを送信しようとすると、次のエラーが発生します。
保護された属性を一括割り当てできません:sector_ids
ここで何が欠けていますか?適切な関連付けを追加した後、データベースを正常に移行しましたが、Railsは、選択されたセクターIDで何をすべきかを実際には知らないようです。
解決 :
class Sector < ActiveRecord::Base
attr_accessible :summary, :title
belongs_to :platforms
end
と
class Platform < ActiveRecord::Base
attr_accessible :name, :url, :platform_attributes, :sector_ids
has_many :sectors
end
とビューで:
<%= f.association :sectors, :as => :check_boxes %>
もちろん、まだ実行していない場合は、「」を実行することを忘れないでくださいrake db"migrate
。また、変更を適用するためにサーバーを再起動する必要がありました。
これが誰かに役立つことを願っています。