未知验证器:RubyonRails上的“InValidator”

我正在关注Ruby on Rails的官方入门指南。该指南提供了以下代码来向关注点添加状态验证:

module Visible
  extend ActiveSupport::Concern

  included do
    VALID_STATUSES = ['public', 'private', 'archived']

    validates :status, in: VALID_STATUSES
  end

  def archived?
    status == 'archived'
  end
end

但是我收到以下错误:Unknown validator: 'InValidator'在线validates :status, in: VALID_STATUSES。我正在使用 Rails 6.1.0 并完全遵循此版本的指南。这里有什么问题?

编辑
我做了一个小的改变以使其工作:validates :status, inclusion: { in: VALID_STATUSES }. 但我想知道为什么in不像指南中那样工作。

回答

该指南似乎是错误的,您将其更改inclusion: { in: [] }为正确的解决方案是正确的。

Rails 存储库中已经合并了一个修复程序,但似乎尚未部署。

为了添加一些背景信息,它是如何工作的,Rails中的实现确实实例化了称为 InclusionValidator的验证器类。


以上是未知验证器:RubyonRails上的“InValidator”的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>