我无法更新多级嵌套窗体中的数据。我使用partials来包含创建&更新视图的所有字段,并且我没有创建问题。只有更新。嵌套窗体&update_attributes
基本上具有结构(简化的)是:
user has_one profile
profile has_many addresses
form_for @user do |u|
u.fields_for :profile do |p|
p.fields_for :addresses do |a|
就像我说,创建用户,配置文件和地址工作正常。只有当我尝试更新时才会发现问题。我没有收到错误,但实际上显示它已成功更新。它实际上确实正确更新了用户配置文件字段&,而不是地址字段。
这里是从堆栈跟踪更新的参数。 (再次,总结&格式化)
Parameters: {"controller"=>"profiles", "action"=>"update", "_method"=>"put", "id"=>"1",
"user"=>{"login" => "username",
"profile_attributes"=>{"first_name"=>"Admin",
"addresses_attributes"=>{
"0"=>{"address"=>"123 Address Ave.", "city"=>"Cityville", "state"=>"CA"}
}
}
}
}
所有文件我能找到的只有1种显示嵌套形式,所以我不知道如果我使用正确的update_attributes超过1平深。
有什么想法?
您是否使用'accepting_nested_attributes_for'方法? – DJTripleThreat 2010-10-06 20:36:56
是的,我是。在我的个人资料模型中,我有accepted_nested_attributes_for:addresses,:allow_destroy => true – brewster 2010-10-13 01:47:23
具有完全相同的问题。我使用rails v3.0.3和ruby 1.9.2p0。我感兴趣的是,如果有人使用2层或更多层次的嵌套不存在这个问题。 – SooDesuNe 2011-01-29 23:39:39