2011-04-14 10 views
4

의 인스턴스 메서드 3 검증은 내가레일 모델

undefined method `validates' for #<Asset:0xb6692dbc> 

어떻게 우리가 인스턴스 메소드에 검증 메소드를 호출 할 수

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 

주고 오류처럼 내 지정 유효성 검사 방법에 활성 기록 검증 메소드를 호출 할 모델의

+0

이 아마 해결책이 아니다, 그러나 당신은 당신이 레일 (3)을 사용하고 있는지입니까? 유효성 검사는 3에 고유하며 일반적으로 오류가 발생하면 사람들은 여전히 ​​2.3입니다. – a3uge

+0

예 레일스 3 레일 -v => 레일즈 3.0.4 – Naveed

+0

대신 "validates_uniqueness_of : identifier"를 사용하고 사용자 정의 코드의 before_validation 필터를 사용합니다. – jvatic

답변

0

Rails (3.xx) (rails -v)의 새 버전을 사용하고 있지만 이전 Rails 응용 프로그램을 가지고있을 수 있습니다 ... 다른 폴더에서 Rails 응용 프로그램을 생성 한 다음 파일을 이동해야합니다. ,보기, 등등 ... "유효성 검사는 3 번에 고유합니다. 일반적으로 오류가 발생하면 사람들은 여전히 ​​2.3이라는 느낌"이라고 대답합니다.

0

하여 특정 유효성 검사기를 실체화하고 전화를 직접 검증() 메소드 할 수 있습니다

def age_validation 
    ActiveModel::Validations::NumericalityValidator.new(
    :greater_than_or_equal_to => 0, 
    :less_than_or_equal_to => 100, 
    :attributes => :age 
).validate(self) 
end