Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ruby on Rails collection_select display attribute

I'm new to Rails and am working with the collection_select method.

I have two fields I'd like to display in my select box:

first_name and last_name

So far, I can only display one or the other, not both.

Here's the code I'm working with:

collection_select(:hour,:shopper_id,@shoppers,:id,"last_name")

Thank you.

like image 571
New2rails Avatar asked Dec 20 '09 16:12

New2rails


1 Answers

Add full_name method to shopper model:

class Shopper < ActiveRecord::Base
  #.....
  # add this
  def full_name
    "#{first_name} #{last_name}"
  end
end

And modify the collection_select statement:

collection_select(:hour,:shopper_id,@shoppers,:id,:full_name)

This is because most of Rails helpers takes methods names as params, so does collection_select, which takes a text_method param, which is the name of the method to be called to generate the text of the option itself, thus we define full_name method and we pass it's name to collection_select.

like image 173
khelll Avatar answered Nov 09 '22 07:11

khelll