在哪里放置ActiveModel :: Validator?

时间:2010-12-17 07:54:00

标签: ruby-on-rails ruby validation activemodel

我尝试关注http://api.rubyonrails.org/classes/ActiveModel/Validator.html,但我应该把

放在哪里
 class MyValidator < ActiveModel::Validator
    def validate(record)
      if some_complex_logic
        record.errors[:base] = "This record is invalid"
      end
    end

    private
      def some_complex_logic
        # ...
      end
  end

3 个答案:

答案 0 :(得分:24)

This guy将它们置于app/validators/下,自从我看到该博客文章以来,我也做过了。

答案 1 :(得分:2)

在lib目录中添加此类,并在模型中将其包含在内,并将其包含在内。

答案 2 :(得分:1)

或者,您也可以将其添加到应用的models目录中。另外,正如shingara所提到的,你需要添加,

include ActiveModel::Validations
validates_with MyValidator 

到记录类的模型文件。