2011-12-04 1 views
4

フォームヘルパーでcheck_box_tagを使用していますが、他のすべてのフィールドはサブミットの妥当性検査エラーの後も入力を保持しますが、check_box_tagは入力しません。 check_box_tagにフォームの送信に失敗した状態を保存する方法はありますか?コードは次のとおりです。フォーム送信妥当性検査エラーの後にcheck_box_tagの状態を保持する

<%= check_box_tag 'user_ids[]', 
        user.id, 
        false, 
        :class => 'user_checkbox' %> 

このコンテキストでは、check_box_tagの代わりにcheck_box_tagを使用する必要があります。

答えて

8

falseをに渡すので、すべてのチェックボックスが無効になります。あなたのようななめらかを行うことができますことを修正するには:

<%= check_box_tag 'user_ids[]', 
        user.id, 
        params[:user_ids].include?(user.id), 
        :class => 'user_checkbox' %> 

それはuser.idが提出されたユーザーIDの中であったかどうかをチェックし、それがその後だった場合は、チェックボックスがチェックされています。

+5

ありがとう、私はそれを働かせるためにしなければならなかった唯一の変更は、user.idのto_sを呼び出すことでした – tks

関連する問題