我正在遵循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' on validates :status, in: VALID_STATUSES。我正在使用Rails 6.1.0,并且完全按照这个版本的指南操作。这里有什么问题?
编辑
我做了一个小小的改变,让它发挥作用:validates :status, inclusion: { in: VALID_STATUSES }。但是我想知道为什么in没有像指南中那样工作。
发布于 2020-12-19 22:37:03
指南似乎是错误的,您将其更改为inclusion: { in: [] }的解决方案是正确的。
Rails存储库中已经合并了一个修复程序,但似乎还没有部署。
为了添加一些背景信息,Rails中的实现会实例化验证器类它被称为InclusionValidator。
https://stackoverflow.com/questions/65374097
复制相似问题