Ruby on rails 在t字符串的预定义值中选择

Ruby on rails 在t字符串的预定义值中选择,ruby-on-rails,ruby,ruby-on-rails-3,forms,Ruby On Rails,Ruby,Ruby On Rails 3,Forms,是否可以创建一个 collection_select 或 暂时 t.string 其中,用户可以从字符串的预定义值中进行选择,并且只能选择那些允许存储在数据库中的字符串值?比如说 t.string :relationship_status 我想要预定义的值: In a relationship Single Maried Engaged ETC 该计划大致如下: class Person < ActiveRecord::Base RELATIONSHIP_STATUSES

是否可以创建一个

collection_select 

暂时

t.string
其中,用户可以从字符串的预定义值中进行选择,并且只能选择那些允许存储在数据库中的字符串值?比如说

t.string :relationship_status
我想要预定义的值:

In a relationship
Single
Maried
Engaged
ETC 
该计划大致如下:

class Person < ActiveRecord::Base
  RELATIONSHIP_STATUSES = [
    "single",
    "in a relationship",
    "together",
    "it's complicated"
  ]

  validates :relationship_status, :inclusion => RELATIONSHIP_STATUSES
end
这将产生:

<select name="person[relationship_status]">
  <option value="single">single</option>
  <option value="in a relationship">in a relationship</option>

  ...
</select>

我得到ActionView::Template::Error错误的参数数3为4:在您的情况下,您想要的值与id相同,因此,您可以使用to_.ActionView::Template::Error undefined method permission'for:,我在我的简单表单中使用了,我会将其标记为正确,因为我使用的是简单表单,而不是常规表单帮助器,这是我的错。谢谢
collection_select(:person, :relationship_status, Person::RELATIONSHIP_STATUSES, :to_s)
<select name="person[relationship_status]">
  <option value="single">single</option>
  <option value="in a relationship">in a relationship</option>

  ...
</select>