【问题标题】:preventing rails validation based on previous validation防止基于先前验证的 Rails 验证
【发布时间】:2011-02-05 03:18:54
【问题描述】:

我有一个对“名称”属性进行 2 次验证的模型。它是这样的:

validates :name, :uniqueness => true

validate do
  errors.add(:name, "is dumb") if name_is_dumb?
end

如果第一次验证失败(名称不唯一),我不希望运行第二次验证。

最好和最干净的方法是什么?

【问题讨论】:

  • 也许检查“错误”内容
  • 是的,我想到了那个。这似乎不是最好的 Rails 方式,你知道吗?

标签: ruby-on-rails ruby validation ruby-on-rails-3 activerecord


【解决方案1】:

根据documentation

回调通常在 它们被定义的顺序,与 回调的例外定义为 模型上的方法,称为 最后。

所以下面的 sn-p 应该可以工作:

validates :name, :uniqueness => true

validate do
  errors.add(:name, "is dumb") unless errors[:name].nil?
end

【讨论】:

    猜你喜欢
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多