次のようなコレクション選択メソッドがあります。
<%= fields_for :deal_venue do |dv| %>
<div class = "field form-textarea clearfix">
<%= dv.label "Select Venues" %><br />
<%= collection_select(:venues, :id, @all_venues, :id, :name, {}, {:multiple => true, :prompt => true}) %>
</div>
<% end %>
これは正常に機能していますが、複数のオブジェクトをすべて選択した後、フォームの送信時にユーザーが検証に失敗し、フォームがリロードされると、ユーザーが以前にクリックしたすべての値が失われます。
その後、ユーザーはすべてを再選択する必要があります。そのため、インスタンスを保存する方法があるかどうか疑問に思っていました。私は周りを見回しましたが、解決策は見つかりませんでした。
どんな助けでも大歓迎です!
Edited このフォームを呼び出すメソッドは次のとおりです。
def create
@deal = Merchant.find(merchant_id).deals.new(deal_params)
# Get all venue locations from this merchant
@locations = Venue.pluck(:neighbourhood)
# For drop down form
@all_venues = MerchantService.get_all_venues(merchant_id)
if @deal.save
flash[:success] = "Deal successfully created!"
redirect_to @deal
else
flash[:error] = "Failed to create deal!"
render 'new'
end
end