2010-04-30 2 views
0

(validates_presence_of 경우) 확인 :ActiveRecord 버그? 아니면 내가 잘못 알고있는거야?

다음과 같은 상황에서 어떻게됩니까
User 
    attr_accessible :name, :email, :email_confirmation 

    validates_presence_of :email_confirmation if :email_changed? 

: 나는 경우 유효성이 예상대로 작동하지 않는로 변경하는 경우,

u = User.find 1 
u.name = 'Fonzi' 
u.name_changed? # => true 
u.email_changed? # => false 
u.valid? # => false : email_confirmation is required 

기본적으로, 이메일 경우 확인하지 않습니다 변경되지 않은 경우 전자 메일이 변경된 경우 유효성을 검사합니다. IF가 "다음 함수가 true를 반환하면이 유효성 검사를 실행한다고 생각합니다. 역으로 작동하는 것 같습니다."그냥 잘못 이해하고있는 것입니까?

답변

4

조건부 유효성 검사를 위해 구문이 약간 섞여 있습니다. 일반 유효성 검증 방법이라는 옵션을 통과, 같은 조건 포스트 - 고정 값이 방법, PROC, 또는 문자열이 더 같이한다 그래서 "만약".

validates_presence_of :email_confirmation, :if => :email_changed?

전체 스쿠프를 보려면 documentation을 확인하십시오.

+0

HA! 감사합니다. 늦게까지 코딩 해 주셔서 감사합니다. –

관련 문제