2014-10-05 71 views
0

當用戶登錄或註冊我的應用程序時,他們被重定向回到他們所在的頁面。會議[:previous_url]無盡滾動

這是做的是,在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  
+0

好吧,我想你應該保存以前的網址只適用於非Ajax請求。所以只要檢查請求是否不是'xhr?',那麼只需設置前一個url,否則前一個url就是nil。 – 2014-10-06 07:45:31

回答

1

您可以使用正則表達式去除查詢字符串。下面是使用軌道控制檯的例子:

?> 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