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.