Как указать и проверить перечисление в рельсах?

В настоящее время у меня есть модель Attend, в которой будет столбец статуса, а в этом столбце статуса будет только несколько ценности для него. STATUS_OPTIONS = {: yes,: no,: might}

1) Я не уверен, как я могу проверить это до того, как пользователь вставит Attend? По сути, перечисление в java, но как я могу сделать это в рельсах?

26
задан mu is too short 16 November 2011 в 05:09
поделиться

1 ответ

Для определения динамического поведения, можно использовать in: :method_name нотация:

class Attend < ActiveRecord::Base
  enum status: [:yes, :no, :maybe]
  validates :status, inclusion: {in: :allowed_statuses}

  private

  # restricts status to be changed from :no to :yes
  def allowed_statuses
    min_status = Attend.statuses[status_was]
    Attend.statuses.select { |_, v| v >= min_status }.keys
  end
end
0
ответ дан 28 November 2019 в 06:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: