Rails は私のハッシュ リテラルをネストされた属性として解釈していると思います。実際には、ハッシュを文字列に変換したいだけです。一部のモデルに関連するネストされた属性ではなく、モデルに関連する必要もありません。ここで、値を入れ子にすることは、面倒な作業をせずにフォームを介してデータを渡すための便利な方法にすぎません。
:params は
{"utf8"=>"✓",
"authenticity_token"=>"[deleted for SO]",
"scorecard"=>{"1"=>"2",
"2"=>"2",
"3"=>"2",
"4"=>"2",
"5"=>"2",
"6"=>"2",
"7"=>"2",
"8"=>"2",
"9"=>"2",
"10"=>"2",
"11"=>"2",
"12"=>"2"}},
"commit"=>"Create Assessment"}
..しかし、私がするとき:
assessment = Assessment.new(params[:assessment])
...
@assessment.save
...私は得る:
unknown attribute: scorecard
興味深いことに、いつ
attr_accessible :scorecards
.. がモデルにある場合 (複数形に注意)、次のようになります。
Can't mass-assign protected attributes: scorecard
attr_accessible が実際に必要なもの (:scorecard) である場合、「不明な属性: スコアカード」が表示されるため、入れ子になった属性を扱っていると Rails が認識しているようです。
:scorecard をネストされた属性として扱わないように Rails に指示できますか?
ありがとう。