Rails 3 создает тэг select с ассоциацией has_many belongs_to
На основе следующих моделей
class Company < ActiveRecord::Base
belongs_to :country
end
class Country < ActiveRecord::Base
has_many :companies
end
Я хочу иметь в своих компаниях /_form тег select, содержащий все страны
Я думаю, что Company.new(params[:company])
в companies_controller#create
может создать связь между компанией и выбранной страной
Я запускаю rails 3.0.0, что лучший способ достичь этого?
спасибо за ваши идеи
Ответы
Ответ 1
collection_select
должен сделать трюк для вас:
collection_select(:company, :country_id, Country.all, :id, :name, :prompt => 'Please select country')
В приведенном выше коде предполагается, что таблица стран имеет столбец name
. Если это не так, замените пятый параметр на любой столбец названия страны.
:prompt
означает, что вы вынуждаете пользователя выбирать одну страну.
Найдите дополнительную информацию в Документация API Rails.