Written by Sean Behan on Sun Jun 17th 2012

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>

Tagged with..
#api #collection #helpers #html #select #Posts #Ruby on Rails

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