2016-07-07 49 views
0

私はムービー文字の配列をループしています。各ムービーにはチェックボックスがあります。 「Select My Cast」ボタンを押したときに、私がparamsハッシュで配列内で選択した文字のIDを取得できるように、チームのパス(コントローラ内のindexメソッド)にリダイレクトされるようにしたい。check_box_tagを使ってRailsのparamsハッシュに渡す方法は?

は、ここでは、コードです:

私は私のコントローラの私のインデックスメソッドでbinding.pryを配置し、paramsが全くchar_ids配列または任意の関連情報を持っていません。助けてくれてありがとう;私はこれが多くの質問に知られていることを認識しています。

答えて

0

コントローラがパラメータとコードスニペットを取得していない場合は、それが最も可能性の高い:

  1. は、あなたがあなたのページに
  2. そのlink_toアンカーリンクをクリックして、フォームを送信していないが、フォームタグを含めるのを忘れていました。

ので、必ずごform_forform_tagセットアップを持って作り、あなたが「ボタン」ではなく単にアンカータグ(link_to)のいくつかの種類を使用してフォームを送信してください。

PS。デフォルトでgetであるため、link_tomethod: :getを追加する必要はありません。

PSS。form_for check_boxmultiple: trueを複数の値に使用できます。

0

私はちょうどこの問題を遭遇し、解決するまでに時間がかかったので、私は後世のために私の解決策を投稿します。

私は形で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"} 

ここでは、ネストされたパラメータが送信されています。

関連する問題