session[:previous_url] 无限滚动
Posted
技术标签:
【中文标题】session[:previous_url] 无限滚动【英文标题】:session[:previous_url] with endless scrolling 【发布时间】:2014-11-30 03:42:45 【问题描述】:当用户登录或注册我的应用程序时,他们会被重定向回他们所在的页面。
这是在 application_controller.rb 中执行此操作的代码:
def after_sign_in_path_for(resource)
session[:previous_url] || root_path
end
问题是我使用 ajax 和 will_paginate 来实现无限滚动。当用户滚动过第一页然后登录时,他们会被重定向到如下所示的 URL:
www.example.com/path_=1412539956365&page=6
仅显示第 6 页上的帖子。我如何简单地重定向回:
www.example.com/path
【问题讨论】:
好吧,我猜你应该只为非 ajax 请求存储以前的 url。因此,只需检查请求是否不是xhr?
,然后设置前一个 url,否则前一个 url 为 nil。
【参考方案1】:
您可以使用正则表达式去除查询字符串。下面是一个使用 rails 控制台的例子:
?> session[:previous_url]
=> www.example.com/path_=1412539956365&page=6
?> session[:previous_url][/[^\?_]+/]
=> "www.example.com/path"
您可以将您的功能更改为:
def after_sign_in_path_for(resource)
session[:previous_url][/[^\?_]+/] || root_path
end
【讨论】:
以上是关于session[:previous_url] 无限滚动的主要内容,如果未能解决你的问题,请参考以下文章