2010-09-21 6 views
11

Basé sur les modèles suivantsRails 3 construire une balise select avec has_many belongs_to association

class Company < ActiveRecord::Base 
    belongs_to :country 
end 

class Country < ActiveRecord::Base 
    has_many :companies 
end 

Je veux avoir dans mes entreprises/_form une balise select contenant tous les pays

Je pense que le Company.new(params[:company]) en companies_controller#create peut créer l'association entre l'entreprise et le pays sélectionné

Je suis les rails 3.0.0, quelle est la meilleure façon d'y parvenir?

Merci pour vos idées

Répondre

31

collection_select devrait faire l'affaire pour vous:

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

Le code ci-dessus suppose que la table des pays ont une colonne name. Si ce n'est pas le cas, remplacez le cinquième paramètre par la colonne du nom du pays.

:prompt signifie que vous obligez l'utilisateur à choisir un pays.

Pour plus d'informations, référez-vous au Rails API documentation.

+0

fonctionne bien, merci – denisjacquemin

Questions connexes