私は本当にこれを理解することはできません。大量割り当てエラーに関する同様の問題をたくさん読んだことがありますが、私が試したすべての解決策は失敗しました。
accept_nested_attributes_for と simple_form を使用して、機関モデルをコース モデルにネストしようとしています。私のコードは次のとおりです。
コースモデル:
# Attributes
attr_accessible :class_end, :class_start, :cost, :effort, :level, :name, :overview, :prerequisites, :tags, :tag_list
# Associations
belongs_to :institution
accepts_nested_attributes_for :institution
機関モデル:
# Attributes
attr_accessible :bio, :city, :country, :name, :state, :twitter_url, :type, :url, :image_url, :email
# Associations
has_many :courses
ネストされた simple_form のビュー:
<%= simple_form_for(@course) do |f| %>
<%= f.simple_fields_for :institutions do |i| %>
<%= i.input :name %>
<%= f.input :name %>
<%= f.input :overview %>
<%= f.input :cost %>
<%= f.input :level %>
<%= f.input :tag_list %>
<%= f.input :class_start %>
<%= f.input :class_end %>
<%= f.input :effort %>
<%= f.input :prerequisites %>
<%= f.button :submit %>
<% end %>
<% end %>
私が得ているエラー:
Can't mass-assign protected attributes: institutions
{"utf8"=>"✓",
"authenticity_token"=>"GRoBHYhpv3QyzvH2UHBaJQ/62+9QIDKIwp/VLiLMjus=",
"course"=>{"institutions"=>{"name"=>"asdfa"},
"name"=>"sdaf",
"overview"=>"asdf",
"cost"=>"Free",
"level"=>"Beginner",
"tag_list"=>"asdf",
"class_start(1i)"=>"2012",
"class_start(2i)"=>"9",
"class_start(3i)"=>"18",
"class_end(1i)"=>"2012",
"class_end(2i)"=>"9",
"class_end(3i)"=>"18",
"effort"=>"asdf",
"prerequisites"=>"asdf"},
"commit"=>"Create Course"}