私はちょうどこの問題を遭遇し、解決するまでに時間がかかったので、私は後世のために私の解決策を投稿します。
私は形でfields_for
を使用する必要がされたものを私にアップトリップシリアル化されたハッシュフィールドmessaging_preferences=> { "articles"=>false, "marketing"=>false, "digest"=>false }
とUserモデルを持っています。
<%= 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"}
ここでは、ネストされたパラメータが送信されています。