2009-12-20 16 views
11

Soy nuevo en Rails y estoy trabajando con el método collection_select.Ruby on Rails collection_select display attribute

que tienen dos campos que me gustaría ver en mi cuadro de selección:

first_name y last_name

Hasta el momento, sólo puede mostrar una o la otra, pero no ambas.

Aquí está el código que estoy trabajando con:

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

Gracias.

Respuesta

24

Añadir full_name método para shopper modelo:

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

y modificar los collection_select declaración:

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

Esto es porque la mayoría de los ayudantes Carriles toma nombres de los métodos como params, también lo hace collection_select, que toma un param text_method, que es el nombre del método que se llamará para generar el texto de la opción en sí, así definimos el método full_name y pasamos su nombre t o collection_select.

+0

¡Genial, gracias! – New2rails