私はのdelivery_preference
モデルのdelivery_day
というフィールドを持っています。Ruby on Railsの連結チェックボックス
フォームでは、の7つのチェックボックスを日曜日、月曜日などのように毎日提供し、後で連結したいと考えています。
たとえば、ユーザが日曜日と金曜日に確認した場合、&には"Sunday,Friday"
と入力してください。delivery_day
フィールドに接続します。
ありがとうございました!
私はのdelivery_preference
モデルのdelivery_day
というフィールドを持っています。Ruby on Railsの連結チェックボックス
フォームでは、の7つのチェックボックスを日曜日、月曜日などのように毎日提供し、後で連結したいと考えています。
たとえば、ユーザが日曜日と金曜日に確認した場合、&には"Sunday,Friday"
と入力してください。delivery_day
フィールドに接続します。
ありがとうございました!
まだ簡単なコメントを残しておくほどの評判はありません。ただし、移行に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
」
マイトあなた "として連結&店、それを"よりよい解決策を持っていますが、私は同様の問題に遭遇したとき、私はそれを解決するためにを使用。
<%= 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 => [])
ようにする必要があります。
このような配列にインデックスを指定する必要はありません。 'check_box_tag"にすることができますdelivery_preference [delivery_day] [] "'すべてのチェックボックス –
あなたはこのようなあなたのフォームを設計することができます - 次のように
<%= 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
はそれが役に立てば幸い!
質問もフォームに記入してください。 – dp7
私はまだ取り組んでいます。基本的には、次のようになります。<%= form_for(@delivery_preference)do | f | %><% end %>。その間に私は7つのチェックボックスを用意して、後で連結し、それをdelivery_dayフィールドに保存したいと思います。ありがとう!! –
あなたのフォームをデザインする方法と、 'delivery_day'フィールドに目的の結果を保存する方法を指定する以下の回答を投稿しました。 – dp7