我正在试图弄清楚如何创建一个共享的自定义验证,我可以在我放在lib / validations.rb文件夹中的模型中使用它。
module Validations
extend ActiveSupport::Concern
# included do
def email_format_validation
if self.email.present?
if !validates_format_of :email, with: email_regex
self.errors.add(:email, "doesn't exist")
end
end
end
def email_regex
/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
end
end
所以在我的模型中,这允许我这样做:
validate :email_format_validation
在其他型号中,我试着打电话email_regex:
validate :user_email, with: email_regex
这会产生以下错误:
undefined local variable or method `email_regex' for #
我已经尝试使用include Validations,extend Validations,require 'validations'等我有没有运气模型。我也尝试将模块方法放在a中class << self,使用included do块,将方法设置为self.email_regex和调用Validations.email_regex,但似乎没有任何工作。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。