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

时间:2010-09-21 19:58:09

标签: ruby-on-rails associations

基于以下模型

class Company < ActiveRecord::Base
  belongs_to :country
end

class Country < ActiveRecord::Base
  has_many :companies
end

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

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

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

感谢您的见解

1 个答案:

答案 0 :(得分:31)

collection_select应该为你做到这一点:

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

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

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

Rails API documentation

中查找更多信息