簡體   English   中英

如何使用“ select_tag”在視圖中實現此動態選擇選項?

[英]How to implement this dynamic select options in view using “select_tag”?

我有兩個模型對象,分別是EventTask ,它們具有一對多關聯。

事件模型:

class Event < ActiveRecord
  has_many :Task

任務模型:

class Task < ActiveRecord
  belongs_to :Event

我的控制器有一個索引函數,它返回事件列表(@events), 也許還返回任務列表(@tasks):

class MyController < ApplicationController

  def index
    @events = Event.all
    @tasks.....

  end

在我的視圖(index.html.haml)中,我為表列中的所有事件定義了一個多選字段,如下所示:

%td
  =select_tag('events',options_from_collection_for_select(@events, 'id', 'name'), {:multiple=>'multiple'})

上面的select_tag的輸出代碼是:

<td>
<select id="events" multiple="multiple" name="events">
    <option value="1">Event 1</option>
    <option value="2">Event 2 </option>
</select>
</td>

我想要的是在另一個表列中,我還有一個任務的多重選擇字段,看起來像事件多重選擇字段一樣, 但主要功能是, 任務選擇選項的內容是根據哪個事件或事件多選字段中選擇的事件用戶。

例如,假設事件_1與任務_1和任務_2相關聯,如果用戶單擊事件_1,則任務多選字段將顯示任務_1和任務_2作為選項,供用戶下一步選擇。

如何在Rails中實現此功能? 我正在使用Rails3。我猜想該功能需要一些Ajax魔術才能發揮,但是我不知道如何實現它,最好是有人可以在這個問題上給出一個簡單的例子。 謝謝!

檢查此示例是否正是您的模型所需的http://pullmonkey.com/2008/03/30/dynamic-select-boxes-ruby-on-rails/

我建議您對模型保持邏輯。我的意思是

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

任務模型相同

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM