我剛剛遇到這個問題,需要一段時間才能解決,所以我會發布我的解決方案後代。
我有一個用戶模型序列化哈希場messaging_preferences=> { "articles"=>false, "marketing"=>false, "digest"=>false }
什麼絆倒了我是需要在表單中使用fields_for
。
<%= f.fields_for :messaging_preferences, user.messaging_preferences do |message_type| %>
Marketing emails: <%= message_type.check_box :marketing, {}, "true", "false" %><br />
Article emails: <%= message_type.check_box :articles, {}, "true", "false" %><br />
Weekly digests: <%= message_type.check_box :digest, {}, "true", "false" %><br />
<% end %>
和更新您的控制器user_params反映(像這樣):``
但與此(和USER_NAME &電子郵件PARAMS)生成此調用服務器:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"{{token}}", "user"=>{"name"=>"Jimmy Johnny", "email"=>"[email protected]", "messaging_preferences"=>{"marketing"=>"false", "articles"=>"false", "digest"=>"false"}}, "commit"=>"Update User", "id"=>"6"}
所以,這裏我們已經發送了嵌套參數。