2010-08-12 3 views
0

저는 레일스에 새로운 것이므로 인증 시스템에 authlogic을 사용하고 있습니다. 사용자가 프로필을 업데이트 할 때 password_confirmation을 사용하고 싶지만 가입 할 때가 아닙니다.생성시 password_confirmation이 필요하지 않지만 업데이트도 필요합니다. (authlogic)

나는이 설정 옵션

acts_as_authentic do |c| 
    c.require_password_confirmation=false 
end 

나는이 작업을 수행 할 때, 그것은 (괜찮습니다) 가입시 password_confirmation을 무시 알아 냈하지만 사용자 프로필을 편집하는 동안, 나는 그것이 password_confirmation 필드를 고려하는 것이 좋습니다. 이 방법을 구성 할 수 있습니까? password_required? 당신이이 유효성 검사를 원하는 경우 테스트 옵션 모델 방법이다

validates_presence_of :password_confirmation, :if => :password_required? 

: 당신은 당신이 표준 레일 모델 검증 등으로이를 달성 할 수있는 Authlogic 기반의 유효성 검사를 일시 중단 된 것처럼

답변

1

주어진 시나리오.

UPDATE

c.require_password_confirmation=false 옵션은 password_confirmation 속성이 더 이상 자동으로 다음 생성되지는 약간 다르게 솔루션에 접근 할 필요가 의미 것으로 보인다으로. 가상 속성을 수동으로 작성하고 특정 프로파일 갱신의 경우에 대해 사용자 정의 유효성 검증을 작성하십시오. 이런 식으로 뭔가 : 나는 c.require_password_confirmation을 수행 할 때

class User < ActiveRecord::Base 
    attr_accessor :password_confirmation 

    validate do |user| 
    unless user.new_record? 
     user.errors.add :password, "is required" if self.password.blank? 
     user.errors.add :password_confirmation, "is required" if self.password_confirmation.blank? 
     user.errors.add_to_base, "Password and confirmation must match" if self.password != self.password_confirmation 
    end 
    end 
end 
+0

은 = false를 password_confirmation 필드가 완전히 컨트롤러 및 뷰에 사용할 수 없습니다가, 내가 그것을 가능하게 할 수있는 방법이 ... 확인하는 잊어? # "User"에 대해 정의되지 않은 메서드'password_confirmation '이 사용 가능합니다 (사용할 수없는 경우) – Madhusudhan

+0

@Madhusudhan이 문제를 해결하기위한 추가 제안 방법으로 응답을 업데이트했습니다. – bjg

관련 문제