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

基于以下型号

class Company < ActiveRecord::Base belongs_to :country end class Country < ActiveRecord::Base has_many :companies end 

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

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

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

感谢您的见解

collection_select应该为你做的诀窍:

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

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

:prompt表示您强制用户选择一个国家/地区。

在Rails API文档中查找更多信息。