rails 3验证模型的实例方法

时间:2011-04-14 13:52:29

标签: ruby-on-rails-3 validation

我想在我的自定义验证方法中调用活动记录验证方法,如

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>

我们如何在模型的实例方法中调用验证方法

3 个答案:

答案 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