我刚刚遇到了 Rails 问题,我想用它们来验证我的模型。但是我希望验证是通用的,以便仅当我关注的类具有该属性时才使用验证。我认为这很容易,但我尝试了很多方法,比如使用 column_names、constantize、send 和许多其他方法,但没有任何效果。正确的方法是什么?编码:
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 包含到许多没有电子邮件属性的模型中。我正在使用rails 4。