所以我正在尝试做类似于Railscast Dynamic Select Menus#88的视频。我有一个类别模型,其中包含主菜和主菜。所以我有3个模型而不是2.我试图使用所选主菜的类别然后过滤两侧。与Railscast相比的另一个不同之处是我有很多不仅仅是一种形式。
此代码在我第一次选择某些内容时起作用,但如果我之后将其选择更改为其他任何内容,则边是空的。如果我需要添加任何其他代码/信息,请提前感谢您的帮助,并告诉我们。
编辑:这是一个链接,可以看到动作https://jsfiddle.net/ky0pkavd/
这是我的表格:
<%@restaurants.each do |restaurant| %>
<h3><%=restaurant.name%></h3>
<%= form_for [@customer,@meal] do |f| %>
<%= f.grouped_collection_select(:food_item, restaurant.categories, :entrees, :name, :id, :name) %>
<%= f.grouped_collection_select(:side, restaurant.categories, :sides, :name, :id, :side_item) %>
<%= f.submit "Submit meal", class: "btn btn-primary", data: { confirm: 'Are you sure you want to submit this meal?' } %>
<%end%>
<%end%>
这是我的jQuery:
$(".new_meal #meal_food_item").on('change', function() {
var restaurant = $(this).parent().parent().eq(0)
var sides = $(restaurant).find("#meal_side").html()
var category = $(restaurant).find("#meal_food_item :selected").parent().attr('label')
var options = $(sides).filter("optgroup[label="+category+"]").html()
if (typeof options !== 'undefined') {
$(restaurant).find("#meal_side").html(options)
}
else {
$(restaurant).find("#meal_side").empty()
}
});