Returns <select>
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.
The :value_method
and :text_method
parameters are
methods to be called on each member of collection
. The return
values are used as the value
attribute and contents of each
<option>
tag, respectively. They can also be any object
that responds to call
, such as a proc
, that will
be called for each member of the collection
to retrieve the
value/text.
Example object structure for use with this method:
class Post < ActiveRecord::Base belongs_to :author end class Author < ActiveRecord::Base has_many :posts def name_with_initial "#{first_name.first}. #{last_name}" end end
Sample usage (selecting the associated Author for an instance of Post, @post
):
collection_select(:post, :author_id, Author.all, :id, :name_with_initial, prompt: true)
If @post.author_id
is already 1
, this would
return:
<select name="post[author_id]"> <option value="">Please select</option> <option value="1" selected="selected">D. Heinemeier Hansson</option> <option value="2">D. Thomas</option> <option value="3">M. Clark</option> </select>
Please login to continue.