在不同型号的Rails中进行自定义验证



如何在RubyonRails中的两个不同模型之间使用自定义验证?

我有两个模型如何验证这两个模型之间的列。

最干净的方法是创建单独的验证器类,而不仅仅是一个自定义的验证方法。验证器实际上只是实现#validate#validate_each:的ActiveModel::ValidatorActiveModel::EachValidator的子类

class TitleCaseValidator < ActiveModel::Validator
def validate(record)
unless record.name[0] == record.name[0].upcase
record.errors[:title] << 'must be title cased'
end
end
end
class Album
validates_with TitleCaseValidator 
end
class Book
validates_with TitleCaseValidator 
end
class TitleCaseValidator < ActiveModel::EachValidator
def validate(record, attribute, value)
unless value[0] == value[0].upcase
record.errors[attribute] << 'must be title cased'
end
end
end
class Album
validates :title, title_case: true
end
class Artist
validates :name, title_case: true
end

请参阅执行自定义验证。

最新更新