2011-01-19 11 views
0

私はEventTaskの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の魔法が必要だと思いますが、実装方法はわかりませんが、誰かが簡単な例を挙げることができれば良いです。ありがとう!

答えて

2

この例は、モデルに必要なものを正確に確認してください。 http://pullmonkey.com/2008/03/30/dynamic-select-boxes-ruby-on-rails/です。

そして私は私が意味する、あなたのmodels.Whatのためのロジックを保つために、あなたをお勧めしますが、タスクモデル

ため

class Event < ActiveRecord 
    has_many :tasks # also notice...no capital "t" 
end 

同じです

関連する問題