我认为 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 认为它正在处理嵌套属性。
我可以告诉 Rails 不要将 :scorecard 视为嵌套属性吗?
谢谢。