ActiveModel:验证Equality的值

时间:2016-02-18 10:50:33

标签: ruby-on-rails validation activemodel

我有一个 ActiveModel 类,其实例只有在被触摸时才有效。以下代码有效:

class Base
  include ActiveModel::Model
  validates :touched?, inclusion: { in: [true] }

  def update(params = {})
    initialize(params)
    @touched = true
  end

  def touched?
    !!@touched
  end
end

但我不喜欢它。这不好。我想写这样的东西:

validates: touched?, equality: true

如果不使用自定义验证器,是否有更好/更短的写入方式?如果它也适用于除布尔之外的其他值,那将会很好。

1 个答案:

答案 0 :(得分:4)

validates :touched?,  acceptance: true