나는 User 클래스가 있고 Contact는 User의 하위 클래스입니다. 두 클래스는 모두 users 테이블에 저장됩니다.Rails - 서브 클래스의 레일 유효성 검사 건너 뛰기
내 사용자의 모델 정의에 validates_presence_of :email
이 있음에도 불구하고 내 연락처에 이메일 주소가 있거나 없을 수도 있습니다.
나의 추론은 연락처가 사용자에 의해 입력되고 나중에 사용자가 자신의 프로필을 요구할 때 사용자가 될 수 있다는 것입니다.
- 먼저 내 사용자와 연락처를 내가 정의한대로 정의 하시겠습니까?
- 두 번째로, 내 연락처 모델에서
validate_presence_of email
유효성 검사를 어떻게 건너 뛰시겠습니까?
덕분에 (내가 레일 2.3.8에있어)!
UPDATE :
은 단일 테이블 상속이 테이블이 내 연락을 위해 이메일의 존재를 확인을 건너 뛸
올바른 방법이 필요 정확히 할 을 설계 보인다 다음과 같이 :
validates_presence_of :email, :unless => Proc.new {|user| user.type == "Contact"}
이없는 사용자가 서브 클래스해야
이 올바르게 모델을 검증 할 방법입니다 연락처? 사용자 *는 등록한 연락처입니다. 그러나 연락처가 반드시 사용자는 아닙니다. 이것은 validation이 User 모델에 적용되어서 : unless 절이 필요 없기 때문에 검증 문제도 해결할 수 있습니다. – Raphael