Я только что столкнулся с проблемами Rails и хочу использовать их для проверки своих моделей. Но я хочу, чтобы проверки были общими, чтобы проверка использовалась только в том случае, если класс, в который я включаю свою проблему, имеет атрибут. Я думал, что это будет легко, но я пробовал много способов, таких как использование column_names, константизация, отправка и многие другие, но ничего не работает. Как правильно это сделать? Код:
module CommonValidator
extend ActiveSupport::Concern
included do
validates :email, presence: { message: I18n.t(:"validations.commons.email_missing") },
format: { with: /\A[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\z/i,
message: I18n.t(:"validations.commons.email_wrong_format"),
allow_blank: true } if self.column_names.include? :email
end
end
class Restaurant < ActiveRecord::Base
include CommonValidator
.
.
.
end
Ресторан, конечно, имеет атрибут электронной почты. Можно ли проверить наличие атрибута в классе, в который входит моя проблема? Я хочу включить свои CommonValidations во многие модели, которые не будут иметь атрибута электронной почты. Я использую рельсы 4.
EachValidator
и использовать его для каждого столбца а-ляvalidates :email, email_address: true
. - person coreyward   schedule 01.04.2014