2009-03-07 7 views
9

Ruby on Railsの特定の質問に関連するチェックボックスを作成する正しい方法は何ですか?現時点では、私は持っています:Railsのチェックボックス

<div class="form_row"> 
    <label for="features[]">Features:</label> 
    <br><%= check_box_tag 'features[]', 'scenarios' %> Scenarios 
    <br><%= check_box_tag 'features[]', 'role_profiles' %> Role profiles 
    <br><%= check_box_tag 'features[]', 'private_messages' %> Private messages 
    <br><%= check_box_tag 'features[]', 'chatrooms' %> Chatrooms 
    <br><%= check_box_tag 'features[]', 'forums' %> Forums 
    <br><%= check_box_tag 'features[]', 'news' %> News 
    <br><%= check_box_tag 'features[]', 'polls' %> Polls 
</div> 

私はまた、自動的に以前に選択した項目をチェックすることができます(このフォームが再ロードされている場合)。どのように私はこれらのデフォルト値にパラメータをロードするのだろうか?

答えて

14

次を見ている:

<div class="form_row"> 
    <label for="features[]">Features:</label> 
    <% [ 'scenarios', 'role_profiles', ... , 'polls' ].each do |feature| %> 
     <br><%= check_box_tag 'features[]', feature, 
       (params[:features] || {}).include?(feature) %> 
     <%= feature.humanize %> 
    <% end %> 
</div> 

すでにfeaturesテーブルとFeatureモデル、およびhas_many :features関係を持っている場合、あなたはおそらく、この希望が:

<div class="form_row"> 
    <label for="feature_ids[]">Features:</label> 
    <% for feature in Feature.find(:all) do %> 
     <br><%= check_box_tag 'feature_ids[]', feature.id, 
       @model.feature_ids.include?(feature.id) %> 
     <%= feature.name.humanize %> 
    <% end %> 
</div> 
+0

未定義のローカル変数を# alamodey

+0

のための 'features 'どのようなモデルには機能の関連付けがあり、どの変数に格納されていますか? @記事? @製品? :) – vladr

+0

実際には、あなたのビュー_and_アクション(コントローラから)_and_関連するモデルのコード全体を投稿してみませんか? – vladr

関連する問題