다음과 같은 사용자 모델이 있습니다.레일즈 - 조건부로 유효성 검사를 사용하려면 어떻게해야하나요?
class User < TwitterAuth::GenericUser
acts_as_authentic {|c|
c.login_field = :email
c.validate_email_field = false
c.validate_password_field = false
}
end
TwitterAuth 및 Authlogic 플러그인을 사용합니다.
사용자가 트위터를 사용하여 일반 전자 메일을 통해 등록했는지 여부에 따라 유효성 검사를 선택적으로 사용하지 않으려합니다. c.validate_email_field = false .
- With email and password registration, the validations needs to be on.
-twitter does not have email or password fields, the validation needs to be off.
When I disable validation, the authLogic user registration using email and password fails:
unknown attribute: password_confirmation
I tried to selectively disable validation if attribute 'twitter_id' is present.
c.merge_validates_confirmation_of_password_field_options({:unless => :skip_password_validation?})
def skip_password_validation
!attribute_present?('twitter_id')
end
'twitter_id'특성이 사용자 테이블에 있는지 여부는 사용 여부에 관계없이 작동하지 않습니다.
전자 메일 및 암호 유효성 검사를 선택적으로 활성화하려면 어떻게합니까? i, e 트위터 oAuth를 사용하지 않는 경우에만 유효성 검사를 사용합니다.
도움 주셔서 감사합니다
validates_with와 (과) 같이 보이는 것은 Rails 3.0뿐입니다. 나는 불행하게도 2.3.5에 있는데 그것은 옵션처럼 보이지 않는다. – truthSeekr
네 말이 맞아. 2.3.x에서는'validate' 메서드를 직접 재정의해야한다고 가정합니다. 'ActiveRecord :: Validations'에 대한 예제를보십시오. 행운을 빕니다! – harald