マルチレベルのネストされた形式でデータを更新するのに問題があります。パーシャルを使用して、作成ビューと更新ビューの両方のすべてのフィールドを含めていますが、作成に問題はありません。更新する場合のみ。
基本的に構造(簡略化)は次のとおりです。
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レベル以上の深さで適切に使用しているかどうかはわかりません。
何かご意見は?