Written by Sean Behan on Sun Jun 17th 2012

Here is a little code snippet that will fire off a request to update_client_path when you change the select field. This stands alone, rather than being apart of a larger form. The Client::CATEGORY argument is a hash, which I populated manually in my Client.rb model. It is something like this

CATEGORY = {:lead => "Prospective clients", :past => "Previous clients..."} 
In my view I have
<%= select_tag "client_category", 
 options_for_select(Client::CATEGORY.keys, @client.category.to_sym), 
 { :onchange => remote_function( :url => update_client_path(@client), :with=>"'change_to='+this.value+''" ) } %>
One gotcha is that the select_tag, options_for_select argument expects a symbol if you're passing in a hash as the type of the collection! It may not set the default if you provide it with a string for the second arg (which specifies which option should be set as selected).

You also need to make sure that the url update_client_path is set in your routes file and that your controller (clients_controller in this case) has the appropriate method to handle the request.


Tagged with..
#defaults #helpers #onchange #options_for_select #Rails #select #select_tag #to_sym #Ruby on Rails

Just finishing up brewing up some fresh ground comments...