私はユーザーがログアウトしようとすると問題に遭遇しています。ユーザーがログアウトボタンをクリックすると、ログアウトされてログインページに移動します。しかし、実際には今起こっているのは、現在のページがそのままであるということです。リフレッシュボタンを押すか、別のページに移動してログイン画面を表示する必要があります。私はuser認証のためにdeviseを使ってrailsアプリを開発しています。
アプリケーションコントローラのafter_sign_out_path_for(resource_or_scope)メソッドをオーバーライドして、ログインページを表示させる別のページにリダイレクトしようとしました。この呼び出しはトリガーされませんでした。
私はセッションコントローラにafter_filterも追加しました。別のページにリダイレクトしようとしました。しかし、これは二重レンダリングエラーを引き起こしました。
私はstackoverflowに時間を費やし、ソリューションを見つけることを試みているが、私はできません。どんな助けもありがとう。
ログアウトリンクコードは、私が「取得」のではなく、同様の削除をサポートするために工夫初期化子を変更した
<%= link_to('Logout', destroy_user_session_path, :method => 'get',:class=>'btn btn-sm btn-default') %>
です。
アイデア?
編集:registration_controller.rb
class RegistrationsController < Devise::RegistrationsController
layout "devise_layout"
respond_to :json
end
routes.rbを
devise_for :users, :controllers => {sessions: 'sessions', registrations: 'registrations'}
scope "/admin" do
resources :users
end
registration_controllerとroutes.rbは表示できますか? – pyfl88
また、アプリケーションコントローラ内の 'Devise :: Controllers :: Helpers#stored_location_for'メソッドをオーバーライドして、' nil'を返す必要があります。あなたはそれをしました – sajinmp
はい、私はすでにアプリケーションコントローラのstored_location_forをオーバーライドしようとしました。それは動作しませんでした –