3

ユーザーがログインしてさまざまなページを見るレールアプリを作成しています。プライベートなものもあれば、パブリックなものもあります。ユーザーが非公開ページを表示中にサインアウトすると、root_path にリダイレクトされる必要があります。ユーザーが公開ページを表示しているときにサインアウトすると、同じページにリダイレクトされます (サインアウトされたので、レンダリングが少し異なります)。

application_controller 内の after_sign_out_path_for(resource_or_scope) メソッドの条件付きステートメントでこれを行いたいと考えています。問題は、通常は pages_controller ファイルからアクセスされる @page 変数が nil であるか、このスコープで使用できないことです。セッションが破棄された後、別のコントローラーからこの変数 (最後に読み込まれたページ) にアクセスする最良の方法は何ですか?

ありがとう。

4

1 に答える 1

1

セッション変数の最後のページを追跡し、フィルターの前に追加して、ページコントローラーで最新のページを維持できます。

session[:last_page_visited] = @page

request.referrerまた、サインアウトしたページのURLを提供するアクセス権もあります。おそらく正規表現を使用して、そこからプライベート/パブリックを判断できるかどうかわかりませんか?

于 2012-10-02T21:25:31.147 に答える