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

时间:2015-03-22 11:26:56

标签: ruby-on-rails-4 activerecord

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

class Temp < ActiveRecord::Base

     validate_uniqueness_of :name
     validate :some_method

     def some_method
        ...
     end
 end

当我尝试:

Temp.validators

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

1 个答案:

答案 0 :(得分:3)

我用以下方法解决了这个问题:

Model._validate_callbacks.to_a.reject { |validation| validation.filter.to_s.starts_with?('validate_associated_records') }

'reject'用于忽略某些默认验证。