我在以多级嵌套形式更新数据时遇到问题。我使用部分来包含创建和更新视图的所有字段,并且我在创建时没有问题。只有更新。
基本上结构(简化)是:
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 级深度。
有什么想法吗?