0
我目前有两个Ruby选择:一个用于类别,另一个用于子类别。正如你可能预料到的那样,第二个每当第一个改变时都要更新自己。如何处理所选项目在HTML选择中更改时的事件
例如,如果我从第一个选择类别“体育”,第二个选择应加载所有的运动。
我该如何处理“索引更改”事件?有没有“红宝石方式”或我必须使用JavaScript?
感谢, 布赖恩
我目前有两个Ruby选择:一个用于类别,另一个用于子类别。正如你可能预料到的那样,第二个每当第一个改变时都要更新自己。如何处理所选项目在HTML选择中更改时的事件
例如,如果我从第一个选择类别“体育”,第二个选择应加载所有的运动。
我该如何处理“索引更改”事件?有没有“红宝石方式”或我必须使用JavaScript?
感谢, 布赖恩
你必须至少使用一些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 %>
谢谢。我会试试看。 – 2010-01-11 15:31:58
问题:我在创建公告时正在执行此操作,因此,我应该将控制器代码放在Show还是New方法中? – 2010-01-11 15:41:19
因为您正在获取与您的某个类别相关的数据(而不是创建一个新类别),所以您希望它在您的类别的显示方法中使用。 – 2010-01-11 16:25:13