1

Ruby on Rails で 2 番目の選択ボックスの結果に基づいて選択ボックスを更新する方法について、より完全な例が必要です。私はすでにここでこれについて尋ねました。私はその投稿からのフィードバックを読みましたが、これを理解する運がなく、何時間も試してきました. より良い(そしてより完全な)例を知っている人はいますか?

4

1 に答える 1

1

これは通常、Javascript で処理されます。私は Javascript のコーディングが特に好きではないので、アプリケーションでこのために行うことは、form_observer (Prototype Javascript ライブラリを使用してフォームの入力変更を監視する Rails ヘルパー) を使用し、HTML を含む DIV を更新することです。 AJAX 呼び出しの結果に基づく 2 番目の選択ボックス。AJAX はサーバーと通信するため、Ruby で任意の複雑なロジックを記述して、新しい HTML をレンダリングできます。

コード例:

#goes in view
<%= Code to render the first list box. %>
<%= render :partial => 'second_list_box_partial', :locals => {:selected = insert_magic_here } %>

<%= observe_field(:first_list_box,
    :url => { :action => :second_box_ajax }),
    :frequency => 0.5,
    :update => :second_list_box_div,
    :with => %Q| 'value=' + $('first_list_box').value;   |
    %>

#goes in controller
 def second_box_ajax
   first_box_value = params[:value]
   #magic goes here
   @selected = #more magic
   render :partial => 'second_list_box_partial', :locals => {:selected => @selected}, :layout => false
 end

 #goes in partial
 <div id="second_list_box_div">
   Actual code to render list box goes here.
 </div>
于 2009-12-18T04:51:22.590 に答える