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文件中的验证程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |