我目前有两个Ruby选择:一个用于类别,另一个用于子类别。正如您所预料的那样,第二个必须在每次第一个更改时自行更新。
例如,如果我从第一个选择“运动”类别,则第二个选择应加载所有运动。
如何处理“索引更改”事件?有“红宝石方式”还是我必须使用javascript?
谢谢, 布赖恩
答案 0 :(得分:2)
您必须至少使用一些JavaScript。在jQuery中,您可以这样做:
$(document).ready(function(){
$('#first-select').change(function(){
$('#second-select').load('/categories/2');
});
});
在您的CategoriesController中,您的show动作应该响应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 %>