Reputation: 7414
Based on following models
class Company < ActiveRecord::Base
belongs_to :country
end
class Country < ActiveRecord::Base
has_many :companies
end
I want to have in my companies/_form a select tag containing all the countries
I think that the Company.new(params[:company])
in companies_controller#create
can create the association between company and the selected country
I'm running rails 3.0.0, what is the best way to achieve that?
thanks for your insights
Upvotes: 11
Views: 13696
Reputation: 25377
collection_select
should do the trick for you:
collection_select(:company, :country_id, Country.all, :id, :name, :prompt => 'Please select country')
The above code assumes that the countries table have a name
column. If it doesn't, replace the fifth parameter with whatever the column of the country name is.
:prompt
means that you're forcing the user to choose one country.
Find more information in the Rails API documentation.
Upvotes: 31