私はEvent
とTask
の2つのモデルオブジェクトを持っていますが、それらは1対多アソシエーションを持っています。"select_tag"を使用してこの動的選択オプションをビューで実装する方法は?
イベントモデル:
class Event < ActiveRecord
has_many :Task
タスクモデル:
class Task < ActiveRecord
belongs_to :Event
私のコントローラは、インデックスイベント(@events)のリストを返す関数で、たぶんリターンもタスクのリストを持っています(@タスク):
class MyController < ApplicationController
def index
@events = Event.all
@tasks.....
end
私の見解(index.html.haml)では、私は上記select_tagの出力コードがある
%td
=select_tag('events',options_from_collection_for_select(@events, 'id', 'name'), {:multiple=>'multiple'})
::私が欲しいもの
<td>
<select id="events" multiple="multiple" name="events">
<option value="1">Event 1</option>
<option value="2">Event 2 </option>
</select>
</td>
は、別のテーブルの列にあるとして、以下の表の列のすべてのイベントのために複数選択フィールドを定義しています私はの別のマルチセレクトフィールドを持っていますイベントマルチセレクトフィールドのように見えますが、キーの特徴は、の内容ですタスク選択オプションは、イベントまたはイベントをイベント複数選択フィールドから選択したユーザに基づいて動的に変更されます。
たとえば、event_1がtask_1およびtask_2に関連付けられているとします。ユーザーがevent_1をマウスクリックすると、タスクの複数選択フィールドに、task_1およびtask_2が次の選択肢として表示されます。
この機能をレールに実装するにはどうすればよいですか?私はRails 3を使用しています。この機能にはいくつかのAjaxの魔法が必要だと思いますが、実装方法はわかりませんが、誰かが簡単な例を挙げることができれば良いです。ありがとう!