Collection Select Helper and OnChange Event in Rails
Given a collection of Active Record objects, you may use the collection_select helper method to produce a select form field. You need to pass in a number of arguments to the helper function. 1) object - your model object used in the collection 2) method - a valid model attribute or method 3) collection - a collection of active record model objects 4) option_value - value being set from the model for the <option value="option_value"> html element 5) option_name - what is displayed for the user e.g., <option> option_name < 6) option - general options 7) options for the select html element
# helper and arguments...
# collection_select( model, id, collection, option_value, option_name, options, html_options)
<%= collection_select("states", "state_id",
State.participating,
"abbreviation", "name",
{:selected=> get_current_state_or_nil },
{:onchange=>"document.location='/states/'+this.value"}
) %>
#which will produce something like...
<select id="state_id" name="state[id]" onchange="document.location='/states/'+this.value"> <option value="AL">Alabama</option> <option value="AK">Alaska</option> <option value="AZ">Arizona</option> <option value="AR">Arkansas</option> </select>
Comments