在Rails 5中,可以通过以下方法获取调用验证器的方法名:
validates
方法定义验证器时,可以通过_validators
方法获取所有验证器的信息。该方法返回一个哈希表,其中键是模型的属性,值是一个数组,包含应用于该属性的所有验证器。可以通过遍历这个数组来获取每个验证器的方法名。class MyModel < ApplicationRecord
validates :name, presence: true
validates :email, format: { with: /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i }
def self.validator_methods
_validators.each do |attribute, validators|
validators.each do |validator|
puts "Validator method for #{attribute}: #{validator.class}"
end
end
end
end
MyModel.validator_methods
ActiveModel::Validations::ClassMethods
模块的_validators
方法也可以达到相同的效果。这个方法可以直接在模型类中调用,返回一个哈希表,其中键是模型的属性,值是一个数组,包含应用于该属性的所有验证器。class MyModel < ApplicationRecord
validates :name, presence: true
validates :email, format: { with: /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i }
def self.validator_methods
_validators.each do |attribute, validators|
validators.each do |validator|
puts "Validator method for #{attribute}: #{validator.class}"
end
end
end
end
MyModel.validator_methods
这些方法可以帮助你获取在Rails 5中调用验证器的方法名。请注意,以上示例中的代码仅用于演示目的,实际应用中可能需要根据具体需求进行适当修改。
领取专属 10元无门槛券
手把手带您无忧上云