Я пытаюсь выяснить, как создать общую пользовательскую проверку, которую я могу использовать в своих моделях, которые я поместил в папку 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 #<Class....>
Я попытался использовать include Validations
, extend Validations
, require 'validations'
и т. Д. В моей модели, но безуспешно.Я также попытался поместить методы модуля в class << self
, используя блок included do
, установив методы как self.email_regex
и вызвав Validations.email_regex
, и все же, похоже, ничего не работает.