gpt4 book ai didi

ruby-on-rails - Rails validates_with 错误 : :attributes cannot be blank

转载 作者:行者123 更新时间:2023-12-02 17:51:33 31 4
gpt4 key购买 nike

我正在尝试对某些代码使用 validates_with 验证,以确保两个标志不会同时为真:

validates_with ConfirmationValidator

class ConfirmationValidator < ActiveModel::Validator
def validate(record)
if record.confirmed_good && record.confirmed_bad
record.errors[:base] << "Record is both confirmed and confirmed_bad"
end
end
end

但是尝试使用它会出现以下错误:

gems/activemodel-3.0.7/lib/active_model/validator.rb:142:in `initialize': :attributes cannot be blank (RuntimeError)

查看该文件似乎是由于传递选项时出现了一些问题,但我仍然不能完全判断出了什么问题。有什么想法吗?

最佳答案

正如@Gazler 在上面指出的那样,您的错误实际上映射到 EachValiator 初始化问题。我遇到了同样的问题。

我正在运行 Rails 3.0.9,使用的是 ActiveModel 3.0.9,与您似乎正在运行的堆栈不太一样。我刚开始使用自定义验证器。我有一个 ActiveModel::EachValidator,与您的代码示例所说的不完全相同。 EachValidator 需要在选项中将属性作为数组传递给 validates_with,例如

class Something < ActiveRecord::Base
validates_with GenericValidator, :attributes=>[:name, :image]
end

关于ruby-on-rails - Rails validates_with 错误 : :attributes cannot be blank,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7561867/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com