我想在我的自定义验证方法中调用活动记录验证方法,如
class Asset < ActiveRecord::Base
validate :ensure_unique_identification_code
validates :name,:uniqueness=>true
def ensure_unique_identification_code
self.identifier="identifier code" #code is generated using some helper method of Asset model
validates :identifier ,:uniqueness=>true
end
end
给出错误
undefined method `validates' for #<Asset:0xb6692dbc>
我们如何在模型的实例方法中调用验证方法
答案 0 :(得分:2)
答案 1 :(得分:0)
可能是您正在使用新版本的Rails(3.xx)(rails -v),但您仍然有一个旧的Rails应用程序......您应该在另一个文件夹中生成一个Rails应用程序,然后移动您的文件.rb您的新应用/文件夹中的,视图等... 我确认“验证是3的独特之处,通常当发生错误时,人们仍然处于2.3”,就像a3uge所说的那样。
答案 2 :(得分:0)
您可以实例化特定验证器并直接调用validate()方法:
def age_validation
ActiveModel::Validations::NumericalityValidator.new(
:greater_than_or_equal_to => 0,
:less_than_or_equal_to => 100,
:attributes => :age
).validate(self)
end