Ruby on rails 保存哈希文本(告诉Rails不要将哈希解释为嵌套属性)?
我认为Rails将我的哈希文本解释为嵌套属性。我实际上只是想把散列转换成字符串。它不是与某个模型相关的嵌套属性,也不应该与某个模型相关。在这里,嵌套值仅仅是通过表单传递数据的一种方便方式,而无需做太多的工作 :params是Ruby on rails 保存哈希文本(告诉Rails不要将哈希解释为嵌套属性)?,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我认为Rails将我的哈希文本解释为嵌套属性。我实际上只是想把散列转换成字符串。它不是与某个模型相关的嵌套属性,也不应该与某个模型相关。在这里,嵌套值仅仅是通过表单传递数据的一种方便方式,而无需做太多的工作 :params是 {"utf8"=>"✓", "authenticity_token"=>"[deleted for SO]", "scorecard"=>{"1"=>"2", "2"=>"2", "3"=>"2", "4"=>"2",
{"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
。。在模型中(注意复数形式),我得到:
因为当attr_accessible是我真正想要的(:scorecard)时,我得到了“unknown attribute:scorecard”,Rails似乎认为它处理的是嵌套属性
我可以告诉Rails不要将:记分卡作为嵌套属性吗
谢谢。您的意思是在属性中省略“s”吗
attr_accessible :scorecard(s)
编辑
您可能会遇到下一个错误,因为您的表中缺少记分卡列
unknown attribute: scorecard
你能把表格的列名贴出来吗?您似乎缺少“记分卡”一栏。还是你把它命名为“记分卡”?以防万一
您还必须声明serialized:scorecard以保存序列化值。将其保存为JSON也是一个选项。只需要额外的解析。另外,要将散列存储为字符串,请在模型中声明serialize:scorecard
。是的,我确实想省略它。这导致了“不能对受保护的属性进行批量签名:记分卡”(没有“s”)。将“s”添加到网页上的参数名称中,则需要attr_Access成为记分卡DSS,并在末尾添加两个“s”。在模型中执行“serialize:scorecard”(序列化:记分卡)似乎并没有起到作用(尽管我期望它会起作用);我仍然得到“未知属性:记分卡”。s/这导致/添加属性可访问的线索中的“s”,以便您发布模型和控制器?事实上,我缺少该列。谢谢刚接触Rails,没有意识到我的迁移没有更新我的模式。
unknown attribute: scorecard