2012-05-30 57 views
4

在rails中,如何顯示當前用戶訪問過的最新5頁的列表?如何顯示「訪問過的最新頁面」列表

我知道我可以做redirect_to(request.referer)或redirect_to(:back)鏈接到最後一頁,但是如何創建實際的頁面歷史列表?

它主要用於原型,所以我們不必在db中存儲歷史。會話將做。

回答

9

你可以把這樣的事情在你的application_controller:

class ApplicationController < ActionController::Base 
    before_filter :store_history 

private 

    def store_history 
    session[:history] ||= [] 
    session[:history].delete_at(0) if session[:history].size >= 5 
    session[:history] << request.url 
    end 
end 

現在,它存儲了包含五個最新網址訪問

+0

除了'delete_at(0)',還可以使用'shift'。 –

+0

'delete_at'更具可讀性或英文喜歡:) –

8
class ApplicationController < ActionController::Base 
    after_action :set_latest_pages_visited 

    def set_latest_pages_visited 
     return unless request.get? 
     return if request.xhr? 

     session[:latest_pages_visited] ||= [] 
     session[:latest_pages_visited] << request.path_parameters 
     session[:latest_pages_visited].delete_at 0 if session[:latest_pages_visited].size == 6 
    end 
.... 

,以後你可以做

redirect_to session[:latest_pages_visited].last 
+1

+1考慮XHR和POST請求。 –

相關問題