使用 Devise 进行身份验证后记住原始目的地
Remembering original destination after authentication with Devise
如果用户访问受保护页面但未登录,我想执行以下操作 -
将它们重定向到 "Log In" 页面,并将原始目标保存为查询参数。例如/log-in?dest=%2Faccount%2Fsettings
成功登录后,重定向到最初预期的页面而不是默认页面 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:
如果你生成它们,你可以在设计控制器中定义这个方法。
按照这种方法,您可能甚至不需要第一个点。
如果用户访问受保护页面但未登录,我想执行以下操作 -
将它们重定向到 "Log In" 页面,并将原始目标保存为查询参数。例如
/log-in?dest=%2Faccount%2Fsettings
成功登录后,重定向到最初预期的页面而不是默认页面
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:
如果你生成它们,你可以在设计控制器中定义这个方法。
按照这种方法,您可能甚至不需要第一个点。