2016-04-02 11 views
0

私はのdelivery_preferenceモデルのdelivery_dayというフィールドを持っています。Ruby on Railsの連結チェックボックス

フォームでは、の7つのチェックボックスを日曜日、月曜日などのように毎日提供し、後で連結したいと考えています。

たとえば、ユーザが日曜日と金曜日に確認した場合、&には"Sunday,Friday"と入力してください。delivery_dayフィールドに接続します。

ありがとうございました!

+0

質問もフォームに記入してください。 – dp7

+0

私はまだ取り組んでいます。基本的には、次のようになります。<%= form_for(@delivery_preference)do | f | %><% end %>。その間に私は7つのチェックボックスを用意して、後で連結し、それをdelivery_dayフィールドに保存したいと思います。ありがとう!! –

+0

あなたのフォームをデザインする方法と、 'delivery_day'フィールドに目的の結果を保存する方法を指定する以下の回答を投稿しました。 – dp7

答えて

0

まだ簡単なコメントを残しておくほどの評判はありません。ただし、移行にdelivery_dayにはt.boolean :public, default: true_or_false_hereと似たものがありますか?

ので、form以内に、あなたのようなものかもしれない場合:(ブールロジックを経由して)上記した後、あなたが指定することができ

... 
     <div class="form-group"> 
     <%= f.label :public, class: 'checkbox' do %> 
      <%= f.check_box :public %> Monday 
     <% end %> 
     </div> 
     <div class="form-group"> 
     <%= f.label :public, class: 'checkbox' do %> 
      <%= f.check_box :public %> Tuesday 
     <% end %> 
     </div> 
... 

Sunday,Friday

0

マイトあなた "として連結&店、それを"よりよい解決策を持っていますが、私は同様の問題に遭遇したとき、私はそれを解決するためにを使用。

<%= check_box_tag "delivery_preference[delivery_day][0]", 'monday' %>Monday 
<%= check_box_tag "delivery_preference[delivery_day][1]", 'tuesday' %>Tuesday 
<%= check_box_tag "delivery_preference[delivery_day][2]", 'wednesday' %>Wednesday 
<%= check_box_tag "delivery_preference[delivery_day][3]", 'thursday' %>Thursday 
<%= check_box_tag "delivery_preference[delivery_day][4]", 'friday' %>Friday 
<%= check_box_tag "delivery_preference[delivery_day][5]", 'saturday' %>Saturday 
<%= check_box_tag "delivery_preference[delivery_day][6]", 'sunday' %>Sunday 

あなたのコントローラに{deliver_day:['monday'、 'tuesday']}のような配列が送られます。コントローラで連結して保存するか、ロジックをモデルに移すことができます。お使いのコントローラで

、あなたの強力なパラメータは、配列を可能にするために、

params.require(:delivery_preference).permit(.., :deliver_day => []) 

ようにする必要があります。

+0

このような配列にインデックスを指定する必要はありません。 'check_box_tag"にすることができますdelivery_preference [delivery_day] [] "'すべてのチェックボックス –

0

あなたはこのようなあなたのフォームを設計することができます - 次のように

<%= form_for @delivery_preference do |f|%> 
<%= f.check_box :delivery_day, {multiple: true}, "Sunday" %>Sunday 
<%= f.check_box :delivery_day, {multiple: true}, "Monday" %> Monday 
<%= f.submit "Add" %> 
<% end %> 

をフォームを送信した後、あなたはあなたのコントローラであなたのチェックボックスの選択を取得することができます。

def your_action_name 
    params[:delivery_preference][:delivery_day].delete("0") 
    DeliveryPreference.create(delivery_day: params[:delivery_preference][:delivery_day].join(",")) 
end 

はそれが役に立てば幸い!