【问题标题】:ActiveModel: Validate Value for EqualityActiveModel:验证平等的价值
【发布时间】:2016-05-30 11:51:43
【问题描述】:

我有一个 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

在不使用自定义验证器的情况下,是否有更好/更短的编写方式?如果它也适用于 booleans 以外的值,那就太好了。

【问题讨论】:

    标签: ruby-on-rails validation activemodel


    【解决方案1】:
    validates :touched?,  acceptance: true
    

    【讨论】:

    • 如果touched? 没有attr_reader:acceptance 不起作用。我已经用更多似乎相关的信息更新了上面的课程。
    • @schmijos,\@touched 的值可能是什么?
    • 现在可能的两个值是truenil。验证应该只通过true
    • 你有没有摸过?方法,你可以使用自定义验证,validate :touched?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多