我在执行以下操作时遇到了这个错误。
所有内容都在一个插件中完成。
我在 Post 类中添加了一个 Validator……其内容并不重要,但为了回复的完整性,我还是把它列出来。
frozen_string_literal: true
class MainPostValidator < ActiveModel::Validator
def validate(record)
puts ‘TTTTT’
p recordraw = record.raw unless raw.present? post.errors.add :base, 'This record is invalid' endend
private
def some_complex_logic
# …
end
end
在运行带有新更改的服务器之前,我已经在网页上打开了帖子编辑页面,准备检查保存更改是否会触发我的验证器。
我重启了服务器,但没有刷新页面!当我在帖子上点击“保存更改”时,我看到了那个错误。一旦我刷新了页面(也许还重启了服务器实例),错误就消失了。
这一切都是在本地开发环境中完成的。
希望这能帮到你 ![]()
该验证器声明在一个新文件中,而用于应用验证器的 Post 额外代码也放在一个新文件中。
require_dependency 'post' Post.class_eval { include ActiveModel::Validations validates_with MainPostValidator }