2012-08-27 3 views
2

을 로그 아웃하고, 모든 unauthentication 실패로 감지되고 고안 로그 아웃 메시지를 제외하고 괜찮 :레일 + 고안 : 잘못된 내가 고안 내 응용 프로그램에 대한 인증을 수행하는 데 사용할 메시지

en.devise.failure.unauthenticated: " You need to sign in or sign up before continuing "

나는 것을 의미 로그 아웃 할 때 "Not out successfully"메시지가 아닌이 메시지가 나타납니다.

아마도 내 Devise 시스템을 잘못 입력 한 것일 수 있습니다. 여기에 내가 만든 인격화가 있습니다 :

1/내 자신의 세션 컨트롤러를 사용하여 기본 Devise 세션 컨트롤러를 무시합니다. 내 유일한 목적은 특별한 액세스 (로그인/가입) 레이아웃을 선택하는 것입니다 :

class SessionsController < Devise::SessionsController 

    layout 'access' 

end 

더 이상의 코드는 없습니다. 나는 views/layouts/access.html.haml에 위치한 특별 로그인/가입 디자인을 사용하여 렌더링하고 싶었습니다. 물론

, 내 routes.rb 파일이 추가 :/내가 (프랑스어) 수립을위한 다른 언어를 choosed 할, 그래서 devise.fr.yml을 다운로드 config/locales/ 폴더에 붙여 넣기하고, config/application.rbconfig.i18n.default_locale = :fr을 설정

devise_for :users, :controller => { :sessions => 'sessions' } 

2

파일

다른 모든 Devise 조치 메시지는 정확합니다. "로그 아웃"에만 문제가 있습니다. 어떤 생각?

미리 감사드립니다.

+0

당신이 보여줄 수 내 사인 아웃 링크 코드? –

+0

'href = localhost : 3000/users/sign_out'와 링크를 생성하기 위해'link_to ", destroy_user_session_path, : method => 'destroy ''를 사용합니다. – htaidirt

답변

6

세션 컨트롤러를 상속하지 않고 개발자가 맞춤 레이아웃을 처리 할 수있는 방법이있는 것처럼 보입니다. 이 문서에서 살펴 보자 :

https://github.com/plataformatec/devise/wiki/How-To:-Create-custom-layouts

편집

을 다시 로그인 페이지로 사용자를 리디렉션하려면 그들이 로그 아웃 응용 프로그램 컨트롤러에이를 추가 한 후 :

def after_sign_out_path_for(resource_or_scope) 
    sign_ins_path 
end 
+0

답변과 링크를 보내 주신 Tom 께 감사드립니다. 나는 Devise 컨트롤러를 오버라이드하지 않도록 코드를 변경했지만, 여전히 같은 문제가있다. 비록 내가 영어로 돌아 간다면 !!! – htaidirt

+2

어쩌면 로그 아웃 한 후 리디렉션이 제한된 컨트롤러 동작으로 진행될 수 있습니다. 기본적으로 Devise는 root_path로 리디렉션합니다. 해당 컨트롤러에'before_filter : restrict_user'가 있습니까? –

+1

사실! 내 루트 경로는 회사 대시 보드이며 사용자가 로그인하지 않거나 세션이 만료 될 경우를 대비하여 before_filter : restrict_user를 포함합니다. 루트 경로를 어떻게 변경하여 로그인 페이지로 설정할 수 있습니까? – htaidirt

0

Devise는 로그 아웃 요청에 http DELETE 요청을 사용합니다. 이 링크로 로그 아웃해야합니다. <%= link_to "Sign out", destroy_user_session_path, :method => :delete %>

+0

Luis에게 감사하지만, 여전히 잘못된 로그 아웃 메시지 . 나는 '삭제'방법 (내 의견에 쓰여진대로)을 '삭제'로 변경했지만 좋은 소식은 없습니다. – htaidirt

관련 문제