Rails 3使用has_many belongs_to关联构建一个select标记

den*_*min 11 ruby-on-rails associations

基于以下型号

class Company < ActiveRecord::Base
  belongs_to :country
end

class Country < ActiveRecord::Base
  has_many :companies
end
Run Code Online (Sandbox Code Playgroud)

我希望在我的公司/ _form中包含包含所有国家/地区的选择标记

我认为Company.new(params[:company])in companies_controller#create可以创建公司和所选国家之间的关联

我正在运行rails 3.0.0,实现这一目标的最佳方法是什么?

感谢您的见解

von*_*rad 31

collection_select 应该为你做的伎俩:

collection_select(:company, :country_id, Country.all, :id, :name, :prompt => 'Please select country')
Run Code Online (Sandbox Code Playgroud)

上面的代码假定countries表有一name列.如果没有,请将第五个参数替换为国家/地区名称列.

:prompt 意味着您强迫用户选择一个国家/地区.

Rails API文档中查找更多信息.