And*_*vey 4 ruby-on-rails devise
通过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
Run Code Online (Sandbox Code Playgroud)
我也试过了
...
return request.env['omniauth.origin'] || stored_location_for(resource) || root_path
...
Run Code Online (Sandbox Code Playgroud)
我不认为我理解如何存储位置,因为如果用户单击登录,则会将用户重定向回根路径.
登录可以通过两种方式启动.(a)用户尝试访问受限制的视图(即before_filter :authenticate_user!...,在这种情况下,他们被重定向并提示登录.或者(b)用户单击登录链接,如果用户未登录则在每个页面上可用.
(a)似乎有效.(b)不是.我想我需要在用户点击登录链接时将当前位置存储到会话.
我该怎么做呢?或者,哪里有一个很好的信息来源,可以帮助我理解这一点.
谢谢!
| 归档时间: |
|
| 查看次数: |
6685 次 |
| 最近记录: |