如果用户访问受保护的页面但未登录,我想执行以下操作 -
-
将它们重定向到"登录"页面,并将原始目标保存为查询参数。 例如
/log-in?dest=%2Faccount%2Fsettings
-
成功登录后,重定向到最初预期的页面而不是默认
root_path
,在本例中为/account/settings
有没有一种简单的方法可以使用Devise完成此操作?默认情况下,登录后它似乎不会"记住"原始页面,所以我猜我将不得不在某处覆盖一些before_action
。
谢谢!
设计宝石有一个很棒的wiki,其中很多问题都以教程风格的方式回答。 所以对于你的第二个问题,你可以关注。这个:
- https://github.com/plataformatec/devise/wiki/How-To:-Redirect-back-to-current-page-after-sign-in,-sign-out,-sign-up,-update
一个提示:在"第一种方法"中,他们提到
若要在用户登录后重定向到存储位置,请覆盖 after_sign_in_path_for 方法:
如果生成控制器,则可以在设计控制器中定义此方法。
遵循这个程序,你可能甚至不需要你的第一点。