使用 Devise 进行身份验证后记住原始目的地

Remembering original destination after authentication with Devise

如果用户访问受保护页面但未登录,我想执行以下操作 -

  1. 将它们重定向到 "Log In" 页面,并将原始目标保存为查询参数。例如/log-in?dest=%2Faccount%2Fsettings

  2. 成功登录后,重定向到最初预期的页面而不是默认页面 root_path,在本例中为 /account/settings

是否有使用 Devise 完成此操作的简单方法?默认情况下,登录后它似乎没有 "remember" 原始页面,所以我猜我必须在某处覆盖一些 before_action

谢谢!

设计 gem 有一个很棒的 wiki,其中很多问题都以教程风格的方式得到解答。 所以对于你的第二个问题,你可以跟进。这个:

关于这个的一个提示:在 "first approach" 他们提到

To redirect to the stored location after the user signs in you would override the after_sign_in_path_for method:

如果你生成它们,你可以在设计控制器中定义这个方法。

按照这种方法,您可能甚至不需要第一个点。