前もって感謝します!これを解決するのを手伝ってくれれば、2 か月の作業の後にこのプロジェクトを完了させてくれます。Railsフォームのセットアップは次のとおりです。
2 つの複数選択ボックスがあります。「ウェイポイント」はオプションなしで始まります。「select1」にはすべてのオプションがあります。
ボタンと JavaScript を使用して、オプションを「select1」から「waypoints」に移動します。
「waypoints」はFormBuilder collection_selectです。
何らかの理由で、以下のコードを使用すると、
新しいレコードを作成するとき、「ウェイポイント」はビューに表示されません。
データベースにウェイポイントが既に保存されているレコードを更新すると、「ウェイポイント」の複数の選択ボックスがビューで繰り返されます。たとえば、3 つの住所をウェイポイントとしてデータベースに保存した場合、画面には 3 つの複数選択ボックスが表示され、それぞれ異なるオプションが強調表示されます。この問題に関連しているかどうか疑問に思っています: fields_for を使用してフォームの繰り返しを停止するにはどうすればよいですか? 関連するオプションをいくつか試してみましたが、まだうまくいきません。
意見
これは私が更新している Rails 2 アプリであることに注意してください。そのため、form_for と fields_for には = 記号がありません。
<% form_for @newsavedmap, :html => { :id => 'createaMap' } do |f| %>
<%= f.error_messages %>
<%= f.text_field :name, {:id=>"savemap_name", :size=>30 }%></p>
<% f.fields_for :waypoints do |w| %>
<%= w.collection_select :waypointaddress, @newsavedmap.waypoints, :waypointaddress, :waypoint_name, {}, { :multiple => true, :class => "mobile-waypoints-remove", :id =>"waypoints" } %>
<% end %>
<select multiple id="select1">
OPTIONS
</select>
JAVASCRIPT BUTTONS TO MOVE OPTIONS TO WAYPOINTS
<% end %>
保存されたウェイポイント レコードのビューからの出力
<div>
<select id="waypoints" multiple="multiple" name="newsavedmap[waypoints_attributes][0][waypointaddress][]">
<option value="1600 Pennsylvania Ave NW, Washington, DC 20500" selected="selected">DC</option>
<option value="350 5th Ave, New York, NY 10118">NY</option>
</select>
<input id="newsavedmap_waypoints_attributes_0_id" name="newsavedmap[waypoints_attributes][0][id]" type="hidden" value="123">
<select id="waypoints" multiple="multiple" name="newsavedmap[waypoints_attributes][1][waypointaddress][]">
<option value="1600 Pennsylvania Ave NW, Washington, DC 20500">DC</option>
<option value="350 5th Ave, New York, NY 10118" selected="selected">NY</option>
</select>
<input id="newsavedmap_waypoints_attributes_1_id" name="newsavedmap[waypoints_attributes][1][id]" type="hidden" value="124">
</div>