2010-09-21 14 views
11

Basierend auf folgende ModelleRails 3 build ein select-Tag mit has_many belongs_to Verein

class Company < ActiveRecord::Base 
    belongs_to :country 
end 

class Country < ActiveRecord::Base 
    has_many :companies 
end 

ich in meinem Unternehmen haben wollen/_form einen Tag select alle Länder

enthält, denke ich, dass die Company.new(params[:company]) in companies_controller#create kann die Assoziation zwischen Unternehmen und dem ausgewählten Land

Ich bin rails 3.0.0, was ist der beste Weg, um das zu erreichen?

Dank für Ihre Einsichten für Sie

Antwort

31

collection_select sollte es tun:

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

Der obige Code wird davon ausgegangen, dass die Länder Tabelle eine name Spalte haben. Wenn dies nicht der Fall ist, ersetzen Sie den fünften Parameter durch die Spalte des Landesnamens.

:prompt bedeutet, dass Sie den Benutzer zwingen, ein Land zu wählen.

Weitere Informationen finden Sie im Rails API documentation.

+0

funktioniert gut, danke – denisjacquemin

Verwandte Themen