Devise 経由でログインに成功した後、ユーザーを元のページにリダイレクトするにはどうすればよいですか?
私はすでにたくさん読んで検索しましたが、定義する必要があることを理解していますafter_sign_in_path_for
。私はこれを実行し、正しく機能していますが、前のページがどのように保存されているか、およびそれを正しく呼び出す方法を理解するのに問題があります。
セッションコントローラーにこれがあります:
def after_sign_in_path_for(resource)
return request.env['omniauth.origin'] || session[:user_return_to] || root_path
end
私も試してみました
...
return request.env['omniauth.origin'] || stored_location_for(resource) || root_path
...
ユーザーがクリックしてログインするとルートパスにリダイレクトされるため、場所を保存する方法を理解していないと思います。
サインインは 2 つの方法で開始できます。(a) ユーザーが制限されたビューにアクセスしようとする (つまりbefore_filter :authenticate_user!...
、その場合、ユーザーはリダイレクトされ、ログインするように求められます。または、(b) ユーザーがログインしていない場合は、すべてのページで利用可能なサインイン リンクをクリックします。 .
(a) 動作しているようです。(b) そうではありません。ユーザーがログインリンクをクリックしたときに、現在の場所をセッションに保存する必要があると思います。
どうすればいいですか?または、これを理解するのに役立つ優れた情報源はどこですか。
ありがとう!