Ho due elenchi a discesa in una vista e sto tentando di aggiornare le seconde opzioni a discesa in base al valore selezionato dal primo elenco a discesa.Aggiornamento selezionare il tag dinamicamente con ajax nei binari
Sono a conoscenza dei Railscasts su questo argomento, ma non voglio utilizzare le raccolte raggruppate; Le ragioni di ciò sono principalmente che l'utente può selezionare da un menu a discesa o l'altro e i risultati vengono filtrati di conseguenza, il secondo menu a discesa solo filtra le sue opzioni quando viene selezionato un valore dal primo elenco a discesa.
La mia domanda è, come posso ri-popolare le opzioni select_tag da un file js.erb?
forma
<%= 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')
controllore
@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 %>
Così l'ultima parte è ovviamente del tutto sbagliato, ma che è il concetto di ciò che sto cercando di fare. Qual è il modo corretto per realizzare questo? Sono aperto a rielaborare questo, se necessario, ogni aiuto è apprezzato.
Avete un repository github con questo? Forse per Rails 4? –