【发布时间】:2012-03-20 19:45:08
【问题描述】:
我正在 Rails 中创建一个嵌套模型,但我想向控制器中的嵌套模型添加字段。我没有使用 hidden_field_tag,因为它可能被篡改。
这是我的参数哈希:
Parameters: {"dummy"=>{"users_attributes"=>{"0"=>{"email"=>"jjjj@gmail.com", "id"=>"", "_destroy"=>"false"}, "1"=>{"email"=>"qqq@gmail.com", "id"=>"", "_destroy"=>"false"}}}, "commit"=>"Create Dummy"}
我想要的是在每个 user_attributes 下都有一个名为 companyid 的字段。假设我希望 companyid 成为“公司”,然后我认为这会起作用:
len = params["dummy"]["users_attributes"].size
counter = 0
while counter < len
params["dummy"]["users_attributes"][counter]["companyid" => "company"]
counter = counter + 1
end
但是,我在 while 循环的第一行收到“nil:NilClass 的未定义方法 `[]'”错误。我不太清楚为什么。
有人可以帮我修改参数哈希吗?
编辑: 所以,我终于想通了。我并没有真正使用任何解决方案。首先,我将 companyid 的 hidden_field 标记设置为空白。然后,在我的控制器中输入:
params["dummy"]["users_attributes"].each do |key, val|
params["dummy"]["users_attributes"][key]["companyid"] = "company"
end
不是最优雅的代码,但它会工作。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 nested-attributes