21

我尝试关注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
4

3 回答 3

24

自从我看到那篇博文以来,这家伙把它们放在了app/validators/,我也这样做了。

于 2011-05-16T16:43:00.287 回答
2

在你的 lib 目录中添加这个类,并在你的模型中要求它并将它包含在里面。

于 2010-12-17T08:08:12.540 回答
1

或者,您也可以将其添加到应用程序的模型目录中。此外,正如 shingara 所提到的,您需要添加,

include ActiveModel::Validations
validates_with MyValidator 

到记录类的模型文件。

于 2011-04-17T03:43:43.487 回答