2010-01-11 42 views
0

我目前有兩個Ruby選擇:一個用於類別,另一個用於子類別。正如你可能預料到的那樣,第二個每當第一個改變時都要更新自己。如何處理所選項目在HTML選擇中更改時的事件

例如,如果我從第一個選擇類別「體育」,第二個選擇應加載所有的運動。

我該如何處理「索引更改」事件?有沒有「紅寶石方式」或我必須使用JavaScript?

感謝, 布賴恩

回答

2

你必須至少使用一些JavaScript。在jQuery中,你可以這樣做:

$(document).ready(function(){ 
    $('#first-select').change(function(){ 
      $('#second-select').load('/categories/2'); 
    }); 
}); 

在你CategoriesController,你的節目的行動應響應format.js,這應該呈現一個子類別分:

class CategoriesController 
... 
def show 
    @subcats = SubCategory.find_all_by_parent_category(params[:id]) 
    ... 
    respond_to |format| 
    ... 
    format.js { render :partial => "subcategories", :locals => { :subcats => @subcats } } 
    end 
end 

和你的子類別分:

<% subcats.each do |subcat| %> 
<option value="<%= subcat.value %>"><%= subcat.text %></option> 
<% end %> 
+0

謝謝。我會試試看。 – 2010-01-11 15:31:58

+0

問題:我在創建公告時正在執行此操作,因此,我應該將控制器代碼放在Show還是New方法中? – 2010-01-11 15:41:19

+0

因爲您正在獲取與您的某個類別相關的數據(而不是創建一個新類別),所以您希望它在您的類別的顯示方法中使用。 – 2010-01-11 16:25:13

相關問題