加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 自定义验证器不在Ruby on Rails中加载

发布时间:2020-12-17 03:05:13 所属栏目:百科 来源:网络整理
导读:我正在尝试将自定义验证器应用于我的模型issue.rb: class Issue ActiveRecord::Base attr_accessible :description,:no_followers,:title validates_presence_of :title validates_uniqueness_of :title,message: "Title should be unique!" validates_leng
我正在尝试将自定义验证器应用于我的模型issue.rb:

class Issue < ActiveRecord::Base
  attr_accessible :description,:no_followers,:title
  validates_presence_of :title
  validates_uniqueness_of :title,message: "Title should be unique!"

  validates_length_of :description,minimum: 10,maximum: 50
  validates_numericality_of :no_followers,allow_blank: true

  validates_with YesNoValidator

end

验证器是位于app / validators的文件,包含以下内容:

class YesNoValidator < ActiveModel::Validator
    def validate record
        if record.title.include? "yes" && record.description.include? "No"
            record.errors[:title] << "Title has the word yes and description has the word no"
        end 
    end
end

我也尝试将它放在lib文件夹中,但也会出现此错误:

Routing Error

uninitialized constant Issue::YesNoValidator

随机F5’我有时会得到这个错误:

NoMethodError in IssuesController#new

undefined method `key?' for nil:NilClass

因此,似乎没有加载类的文件,所以我尝试将lib以及app / validators文件夹添加到application.rb中的autoload_paths.但这也不起作用..

有谁之前经历过这个吗?

解决方法

在application.rb中,将app / validators路径添加到自动加载路径

config.autoload_paths += [Rails.root.join('app','validators').to_s]

或手动要求Issue.rb文件中的验证程序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读