2011-02-01 4 views
2

편안한 인증 플러그인을 사용하고 있지만 내 사이트에서 "비밀번호 확인"필드없이 등록 양식을 갖고 싶습니다. 이제 문제는 내 사용자 모델에 포함 된 플러그인 모듈에 일부 유효성 검사가 하드 코딩되어 있다는 것입니다.플러그인에서 정의 된 모델 유효성 검사 건너 뛰기

# Authentication::ByPassword 
validates_presence_of  :password_confirmation,  :if => :password_required? 
validates_confirmation_of :password,     :if => :password_required? 

어떻게 플러그인을 패치하지 않고 이러한 유효성 검사를 비활성화 할 수 있습니까? 내 모델에서 유효성 검사를 다시 정의하면 트릭이 실행됩니까? 또는 그런 경우에 가장 좋은 방법은 무엇입니까?

# user.rb 
validates_presence_of  :password_confirmation,  :if => Proc.new { false } 
validates_confirmation_of :password,     :if => Proc.new { false } 
+0

좋아, 일부 단위 테스트를 작성하고 유효성 검사를 다시 정의하면 도움이되지 않습니다. 어떤 대안? – egze

+0

지금은 방금 플러그인을 패치했습니다 – egze

답변

2

당신은 사용할 수 있습니다

save(false) 

또는를 :

update_attribute 

전부 또는 하나의 유효성 검사를 생략 할 수 있습니다.

+0

죄송합니다. 유효성 검사없이 저장하거나 속성을 직접 변경하는 것은 옵션이 아닙니다. – egze

+1

params [: password_confirmation]을 추가하고 params [: password]를 복사하려고 했습니까? – apneadiving

+0

분명히 사용자 지정 유효성 검사 번역을 위해 플러그인을 패치해야했습니다 (필자의 사이트에는 3 개 언어가 있습니다). 고마워, 좋은 생각 – egze