我在Rails中创建了一个嵌套模型,但是我希望将字段添加到控制器中的嵌套模型中。我没有使用hidden_field_tag,因为它可能被篡改。在Rails中修改参数哈希值
这里是我的PARAMS哈希:
Parameters: {"dummy"=>{"users_attributes"=>{"0"=>{"email"=>"[email protected]", "id"=>"", "_destroy"=>"false"}, "1"=>{"email"=>"[email protected]", "id"=>"", "_destroy"=>"false"}}}, "commit"=>"Create Dummy"}
我想是因为有被称为companyid每个user_attributes下一个字段。比方说,我想companyid是“公司”,那么我认为这会工作:
len = params["dummy"]["users_attributes"].size
counter = 0
while counter < len
params["dummy"]["users_attributes"][counter]["companyid" => "company"]
counter = counter + 1
end
但是,我得到“未定义的方法`[]”为无:NilClass”错误的,而第一线循环。我不完全确定为什么。
有人可以帮助我,所以我可以修改参数哈希?编辑: 所以,我终于弄明白了。我没有真正使用任何解决方案。首先,我为companyid设置一个hidden_field标记为空白。然后,在我的控制,我把:
params["dummy"]["users_attributes"].each do |key, val|
params["dummy"]["users_attributes"][key]["companyid"] = "company"
end
不是最优雅的代码,但它会工作。
我给你的检查,因为你深入讨论隐藏领域让我找出解决方案。谢谢! – NielMalhotra 2012-03-20 20:54:56
我缺乏正确性,我弥补了冗长。我应该是一名Java程序员! (哦,等等,我是)。那么,解决方案是什么? – 2012-03-20 23:48:20
它在原始文章的编辑中:f.hidden_field:表单中的companyid,然后是上面的代码片段 – NielMalhotra 2012-03-21 05:38:41