我尝试关注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
答案 0 :(得分:24)
This guy将它们置于app/validators/
下,自从我看到该博客文章以来,我也做过了。
答案 1 :(得分:2)
在lib目录中添加此类,并在模型中将其包含在内,并将其包含在内。
答案 2 :(得分:1)
或者,您也可以将其添加到应用的models目录中。另外,正如shingara所提到的,你需要添加,
include ActiveModel::Validations
validates_with MyValidator
到记录类的模型文件。