2017-09-22 11 views
0

다음을 시도했지만 작동하지 않습니다. 여전히 기본 플래시 메시지를 사용하고 있습니다.Devise의 맞춤 플래시 메시지는 어떻게 만듭니 까?

class Users::SessionsController < Devise::SessionsController 
    after_action :custom_welcome, :only => [:create] 

    def custom_welcome 
    flash.notice = "Welcome back "+current_user.name+"." if flash.keys.include?(:notice) 
    end 
end 

참조 : https://github.com/plataformatec/devise#configuring-controllers

https://stackoverflow.com/a/5513172/148844

답변

1

두 가지 방법 :

  1. 가 고안 페이지에 대한 자신의 레이아웃 (컨트롤러의 매개 변수 layout 키워드)를 사용합니다. 레이아웃에서 당신은 당신의 장치 메시지를 보여주기 위해 별도의 부분을 가질 수 있습니다.

  2. 앱이 약간 복잡하고 레이아웃을 도입하고 싶지 않은 경우 devise rake 명령을 실행하여 devise 컨트롤러를 만든 다음 플래시에 깃발을 넣으십시오. 예를 들어

: 플래시 메시지를 HTML을 생성하는 책임이 당신의 부분보기에이 플래그

flash[:devise] = true 

확인 :이 일을

<% if flash[:devise] %> 
    #... 
<% else %> 
    # ... 
<% end %> 
0

.

flash.notice = "Welcome back #{current_user.name}." if flash.key?(:notice) 
0

개발자 컨트롤러를 재정의하고 있으므로 해당 컨트롤러를 사용하려는 앱에 앱을 알려줘야합니다. (아직 수행하지 않은 경우) routes.rb에서 다음을 수행하십시오 고안은 여전히 ​​원래의 컨트롤러를 사용하고 있기 때문에 여전히 기본 플래시 메시지가 표시하는 경우

devise_for :users, controllers: { sessions: 'users/sessions' } 

는이에 확장하기 위해,에 의해,이다 사용자 정의 제어기를 정의하여 사용하도록 지시합니다.

+0

이 질문에 대답하지 않습니다. –