2012-05-11 9 views
0

約20の「関心事」のチェックボックステーブルを作成しようとしているので、ユーザーは必要なだけ多くを選択できます。興味があります& HABTM関係を持つユーザーモデル(interest_users結合テーブルを使用)。レールチェックボックスフォームの作成方法は?

ので:20かそこらのプリセットの関心の名前で:

  1. は、どのように私は(文字列属性だけで名前を持つ)の利益表をシードしますか?
  2. これらをERB形式で表示すると、ユーザーは好きな数だけ選択することができます。その後、
  3. (偉大-working <)多段階フォームを作成するために、邪悪な宝石を使用して

注..イム

答えて

1
<% for interest in Interest.find(:all) %> 
    <%= check_box_tag "user[interest_ids][]", interest.id, @user.interests.include?(interest) %> 
    <%= interest.name %> 
<% end %> 
+0

私は配列に格納されているすべての興味を持っています..どのように私は "Interest.create:name => 'World Domination'" 20回以上を行う必要はありませんので、 ? Interest.create:name => ["Adevnture sports"、 "Arts and crafts" ......] – js111

+0

Array.each do | interest_name | Interest.create(:name => interest_name) end – galulex

1
  1. あなたはRailsの上にいる場合は> = 3.0、顔をしていますdb/seeds.rbファイル。あなたはRakeタスクrake db:seedを実行して、そのファイルに任意のRubyコードを入れます。 Interest.create :name => 'World Domination'のように多くの行を置くことができます。

  2. このフォームは、フォームの設定方法に依存します。あなたがちょうどあなたのユーザモデルの属性を更新することができるだろう、あなたのコントローラで

    <%= form_for @user do |f| -%> 
        <% Interest.all.each do |i| -%> 
        <div><%= i.name -%> <%= check_box_tag 'user[interests][]', i.id, @user.interests.detect{|ui| ui.name == i.name} -%></div> 
        <% end -%> 
    <% end -%> 
    

:あなたが与えてくれた情報をオフに行く、私はこのような何かをしたいです。パラメータの一括割り当てが可能であることを確認してください。また、未チェックのチェックボックスに関するHTML仕様の制限に留意してください(「Gotcha」という部分を読んでください)。

EDIT:いくつかの文法に関連するタイプミスを修正しました。

+0

私は配列に格納されたすべての関心事を持っています。どうすればいいですか? "Interest.create:name => 'World Domination' "20回以上...次の仕事は? Interest.create:name => ["Adevnture sports"、 "Arts and crafts" ......] – js111

+0

'['アドベンチャースポーツ'、 'アートとクラフト']。 Interest.create:name => i} ' – juanpaco

関連する問題