我认为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是我真正想要的(:记分卡),我得到“未知属性:记分卡”,似乎Rails认为它正在处理嵌套属性。
我可以告诉Rails不要处理:记分卡作为嵌套属性吗?
感谢。
答案 0 :(得分:1)
你的意思是在attr_accessible中忽略的'吗?
attr_accessible :scorecard(s)
修改强>
由于您错过了表格中的scorecard
列
unknown attribute: scorecard
答案 1 :(得分:1)
您可以发布表格的列名吗?您似乎错过了“记分卡”栏目。或者你把它命名为'记分卡'?以防万一。
此外,您必须声明序列化:记分卡以保存序列化值。将其另存为JSON也是一种选择。只需要额外的解析。