質問:ユーザーがログオフするたびにオーバーライドされたafter_sign_out_for
メソッドが呼び出されるようにするにはどうすればよいですか?このメソッドをオーバーライドして、特定のページにリダイレクトできるようにします。Ruby on Rails 5とDevise:after_sign_out_path_forをオーバーライド
ユーザがログアウトすると(セッションコントローラでdestroyメソッドを呼び出す)、私がオーバーロードした私のafter_sign_out_path_for
メソッドは呼び出されません。しかし、私は今、数時間のために、この問題を解決しようとしてきたが、この https://github.com/plataformatec/devise/wiki/How-To:-Change-the-redirect-path-after-destroying-a-session-i.e.-signing-outリンクが私のために動作しませんでしたafter_sign_in_path_for
方法
とのトラブルを持っていませんよ。私はまた、話題のほとんどのSO投稿を見て、いくつかの相反する見方を見た。私は無駄に自分のアプリケーションとセッションコントローラの両方に次のコードを入れて試してみました
def destroy
super
end
:ここ
は、コントローラのメソッドです。
protected
def store_location_for(resource_or_scope, location)
return nil
end
def stored_location_for(resource_or_scope)
return nil
end
def after_sign_out_path_for(resource_or_scope)
puts "called from AFTER SIGN OUT PATH"
new_user_session_path
end
これは私のルートで
devise_for :users, controllers: { sessions: "users/sessions" }
コードの関連部分です最後に、これは、コントローラのメソッド呼び出し、ビューのコードである:あなたの時間
ため<%= link_to 'Sign out', destroy_user_session_path(:user), :method => :delete %>
感謝を