2010-09-21 17 views
11

Sulla base seguenti modelliRails 3 costruire un tag select con has_many belongs_to associazione

class Company < ActiveRecord::Base 
    belongs_to :country 
end 

class Country < ActiveRecord::Base 
    has_many :companies 
end 

voglio avere nelle mie aziende/_form un tag select che contiene tutti i paesi

Penso che la Company.new(params[:company]) in companies_controller#create può creare l'associazione tra società e il paese selezionato

Sono in esecuzione su rails 3.0.0, qual è il modo migliore per farlo?

grazie per le vostre intuizioni

risposta

31

collection_select dovrebbe fare il trucco per voi:

collection_select(:company, :country_id, Country.all, :id, :name, :prompt => 'Please select country') 

Il codice sopra presuppone che la tabella di paesi hanno una colonna name. In caso contrario, sostituire il quinto parametro con qualsiasi sia la colonna del nome del paese.

:prompt significa che stai obbligando l'utente a scegliere un Paese.

Trova ulteriori informazioni nel numero Rails API documentation.

+0

funziona bene, grazie – denisjacquemin

Problemi correlati