我在一个视图中有两个下拉列表,我正在尝试根据第一个下拉列表中选择的值更新第二个下拉列表选项.
我知道铁路公司这个话题,但我不想使用分组的集合;原因主要是用户可以从一个下拉菜单中选择另一个,并且相应地对结果进行过滤,第二个下拉菜单仅在选择了第一个下拉菜单中的值时对其选项进行过滤.
我的问题是,如何从js.erb文件重新填充select_tag选项?
形成
<%= form_tag("filter",:id => "filter_form",:method => "post") do %> <label for="company_id" class="company">Company</label><%= select_tag(:company_id,options_from_collection_for_select(Company.all.order(:name),:id,:name),:prompt => "All Companies") %> <label for="product_id" class="product">Product</label><%= select_tag(:product_id,options_from_collection_for_select(Product.all.order(:name),:prompt => "All Products") %> <% end %>
js.coffee
$('#company_id').change( -> sendFilterForm() ) sendFilterForm = -> $.get($('#filter_form').attr('action'),$('#filter_form').serialize(),'script')
调节器
@filterProducts = true @products = Product.where(company_id: params[:company_id]).order(:name)
js.erb
<% if @filterProducts %> $('#product_id').html(<%= options_from_collection_for_select(@products,:name) %>); <% end %>
所以最后一部分显然是错误的,但这是我想要做的事情的概念.什么是正确的方式来完成这个?我可以修改这个,如果需要,任何帮助是赞赏.