0

前もって感謝します!これを解決するのを手伝ってくれれば、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>
4

1 に答える 1

0

関連するレコードの各インスタンスのフィールドのセットを表示するために通常使用される、このコンテキストでの fields_for の使用から問題が発生していると確信しています。

于 2013-09-23T12:57:12.697 に答える