Tôi có hai menu thả xuống trong chế độ xem và tôi đang cố gắng cập nhật tùy chọn thả xuống thứ hai dựa trên giá trị đã chọn từ trình đơn thả xuống đầu tiên.Cập nhật chọn thẻ động với ajax trong đường ray
Tôi biết Railscasts về chủ đề này, nhưng tôi không muốn sử dụng các bộ sưu tập được nhóm; Lý do cho điều này chủ yếu là người dùng có thể chọn từ một menu thả xuống, hoặc kết quả khác được lọc theo đó, menu thả xuống thứ hai chỉ lọc tùy chọn của nó khi giá trị từ menu thả xuống đầu tiên được chọn.
Câu hỏi của tôi là, làm thế nào tôi có thể điền lại các tùy chọn select_tag từ tệp js.erb?
dạng
<%= 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), :id, :name), :prompt => "All Products") %>
<% end %>
js.coffee
$('#company_id').change(->
sendFilterForm()
)
sendFilterForm = ->
$.get($('#filter_form').attr('action'), $('#filter_form').serialize(), 'script')
khiển
@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, :id, :name) %>);
<% end %>
Vì vậy, phần cuối cùng rõ ràng là hoàn toàn sai lầm, nhưng đó là khái niệm về những gì tôi đang cố gắng làm. Cách thích hợp để thực hiện điều này là gì? Tôi mở để làm lại điều này, nếu cần thiết, bất kỳ trợ giúp nào được đánh giá cao.
Bạn có kho lưu trữ github này không? Có lẽ cho Rails 4? –