2010-11-25 5 views
0

Rails와 ActiveRecord를 처음 접했을 때 여러 수준의 관계형 모델을 통해 유효성 검사를 적용 할 수 있는지 확실하지 않습니다. 나는 하나의 모델에서 모든 유효성 검사를 찾을 수있는 모든 자습서를 검색했습니다.레일스 3 관계형 모델을 검증하는 방법은 무엇입니까?

여러 관계형 모델을 어떻게 검증 할 수 있습니까?

은 하나 개의 모델이 field 저장라는 스포츠 게임의 속성의 다른 유형, 나는 여러 모델을 말한다. (예. 최종 점수에 대한 목표 등에 대한 목표) 모든 실제 값을 저장하는 다른 모델 value field

에 같은 게임 점수는 그래서이 개 클래스

내가 어떻게 validat 수
class Field < ActiveRecord::Base 
    has_many :value  
end 
class Value < ActiveRecord::Base 
belongs_to :field 
end 

이있을 것이다 e 각 값은 value의 각 속성 값에 해당합니다 field? 레일 3에서

답변

2

: 당신은 당신의 lib 디렉토리에있는 파일을 생성 (이 파일이 응용 프로그램에 의해로드되는 그을 확인)와 validate 메소드와 클래스에 넣을 수 있습니다 : 모두

class HumanValidator < ActiveModel::Validator 

    def validate(record) 
    record.errors[:base] << "This person is dead" unless check(human) 
    end 

    private 

    def check(record) 
     (record.age < 200) && (record.age > 0) 
    end 

end 

# app/models/person.rb 
class Customer < ActiveRecord::Base 
    validates_with HumanValidator 
end 

이동이 글을 읽을 link text

soure, 레일 3에서 유효성 검사 참신에 대해 : 당신이 유효성을 검사 할 모델은이 같은 클래스의와 검증을 호출
+0

lib 디렉토리에있는 모든 파일을 자동으로로드하려면 config/application.rb 파일에 config.autoload_paths + = % W (# {Rails.root}/lib)를 추가하십시오. – plehoux

관련 문제