Выберите среди предопределенных значений для t.string - PullRequest
2 голосов
/ 09 июля 2011

Можно ли создать

collection_select 

или

select tag 

для

t.string

, где пользователь может выбирать среди предопределенных значений для строкии только те значения, которые разрешено хранить в базе данных для строки?Например

t.string :relationship_status

И я хочу предопределенные значения:

In a relationship
Single
Maried
Engaged
ETC 

1 Ответ

5 голосов
/ 09 июля 2011

Простейшая вещь, которая могла бы сработать имеет вид:

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

  validates :relationship_status, :inclusion => RELATIONSHIP_STATUSES
end

Затем, в представлении:

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...