2014-04-08 3 views
1

레일 3.2. 안녕. 현재 출시 된 앱에는 구현 된 인증 시스템이 구현되어 있으며 마이그레이션하기 위해 마이그레이션 할 예정입니다. 나는 일하는 유인원 로그인을 얻으려고 여기에서 지혜 끝에있다. 어떻게 든 Devise가 실제로 사용자 세션을 만드는 부분에 문제를 드릴 다운했습니다.Warden이 데이터베이스에 액세스하지 않음 (개발자)

def create 
    self.resource = warden.authenticate!(auth_options) 
    set_flash_message(:notice, :signed_in) if is_flashing_format? 
    sign_in(resource_name, resource) 
    yield resource if block_given? 
    respond_with resource, location: after_sign_in_path_for(resource) 
end 

경로 (나는 유증 컨트롤러를 변경하고 그대로 그냥 놀리려는으로 디버깅하기 위해 고안 컨트롤러 코드를 붙여 넣은) :

여기서 문제가 소장에도 데이터베이스를 타격하지 않다

devise_for :users, controllers: { sessions: "sessions" } 
authenticate. 그냥 nil을 반환합니다. 내 다른 간단한 응용 프로그램을 확인하고 authenticate의 동작은 전자 메일/암호가 맞는지 여부에 관계없이 데이터베이스를 검사합니다. 그 문제에 대해 Warden/Devise에게 데이터베이스를 체크 아웃하기 위해 select 문을 실제로 수행하게하려면 어떻게해야합니까?

(내가 너희들을 도와 붙여 넣을 수있는 일이 있다면 내가 붙여 것) 콘솔

+0

모델의 "작성자"회원은 어떤 모습입니까? –

+0

이것을 알아 냈습니까? 나는 같은 문제에 뛰어 들고있다. – bitops

답변

0

시도 모양 당신의 유증 모델의 인증 키 :

(your_model).authentication_keys 

결과는 다른 존중 경우 (예 : 전자 메일)을 사용하는 경우 모델에 명시 적 추가 :

:authentication_keys => [:email] 

이 방법으로 해결되었습니다. 이 도움말을 희망

안녕이 다른 사람을 도움이 될 수 있습니다 경우

0

: 나는 바로이 같은 문제로 실행되었다. 문제의 원인은 내가 사용자 정의 app/views/sessions/new.html.erb보기를 가지고 있다는 것으로 밝혀졌습니다.이 뷰는 이 아니고,은 devise에서 복사했습니다.

자세한 내용은 https://github.com/plataformatec/devise/issues/3700을 참조하십시오.