我刚刚遇到这个问题,需要一段时间才能解决,所以我会发布我的解决方案后代。
我有一个用户模型序列化哈希场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"}
所以,这里我们已经发送了嵌套参数。