Rails ActiveRecord - 从模型中获取所有验证

nit*_*zan 5 activerecord ruby-on-rails-4

有没有办法找到模型的所有定义的验证.例如:

class Temp < ActiveRecord::Base

     validate_uniqueness_of :name
     validate :some_method

     def some_method
        ...
     end
 end
Run Code Online (Sandbox Code Playgroud)

当我尝试:

Temp.validators
Run Code Online (Sandbox Code Playgroud)

它只能找到唯一性验证,但不能找到另一个验证.

小智 3

我已经通过使用解决了它:

Model._validate_callbacks.to_a.reject { |validation| validation.filter.to_s.starts_with?('validate_associated_records') }
Run Code Online (Sandbox Code Playgroud)

“拒绝”用于忽略一些默认验证。