2009-12-20 14 views
11

Sono nuovo di Rails e sto lavorando con il metodo collection_select.Ruby on Rails collection_select attributo di visualizzazione

ho due campi che mi piacerebbe da visualizzare nella mia casella di selezione:

first_name e last_name

Finora, ho può visualizzare solo uno o l'altro, non entrambi.

Ecco il codice con cui sto lavorando:

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

Grazie.

risposta

24

Aggiungi full_name metodo per shopper modello:

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

e modificare il collection_select dichiarazione:

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

Questo perché la maggior parte di Rails aiutanti prende Metodi di nomi come params, così fa collection_select, che prende un parametro text_method, che è il nome del metodo da chiamare per generare il testo dell'opzione stessa, quindi definiamo il metodo full_name e passiamo il suo nome t o collection_select.

+0

Ottimo, grazie! – New2rails