Returns <select>, <optgroup> and
<option> tags for the collection of existing return
values of method for object's class. The
value returned from calling method on the instance
object will be selected. If calling method
returns nil, no selection is made without including
:prompt or :include_blank in the
options hash.
Parameters:
-
object- The instance of the class to be used for the select tag -
method- The attribute ofobjectcorresponding to the select tag -
collection- An array of objects representing the<optgroup>tags. -
group_method- The name of a method which, when called on a member ofcollection, returns an array of child objects representing the<option>tags. -
group_label_method- The name of a method which, when called on a member ofcollection, returns a string to be used as thelabelattribute for its<optgroup>tag. -
option_key_method- The name of a method which, when called on a child object of a member ofcollection, returns a value to be used as thevalueattribute for its<option>tag. -
option_value_method- The name of a method which, when called on a child object of a member ofcollection, returns a value to be used as the contents of its<option>tag.
Example object structure for use with this method:
class Continent < ActiveRecord::Base has_many :countries # attribs: id, name end class Country < ActiveRecord::Base belongs_to :continent # attribs: id, name, continent_id end class City < ActiveRecord::Base belongs_to :country # attribs: id, name, country_id end
Sample usage:
grouped_collection_select(:city, :country_id, @continents, :countries, :name, :id, :name)
Possible output:
<select name="city[country_id]">
<optgroup label="Africa">
<option value="1">South Africa</option>
<option value="3">Somalia</option>
</optgroup>
<optgroup label="Europe">
<option value="7" selected="selected">Denmark</option>
<option value="2">Ireland</option>
</optgroup>
</select>
Please login to continue.