在rails中,如何顯示當前用戶訪問過的最新5頁的列表?如何顯示「訪問過的最新頁面」列表
我知道我可以做redirect_to(request.referer)或redirect_to(:back)鏈接到最後一頁,但是如何創建實際的頁面歷史列表?
它主要用於原型,所以我們不必在db中存儲歷史。會話將做。
在rails中,如何顯示當前用戶訪問過的最新5頁的列表?如何顯示「訪問過的最新頁面」列表
我知道我可以做redirect_to(request.referer)或redirect_to(:back)鏈接到最後一頁,但是如何創建實際的頁面歷史列表?
它主要用於原型,所以我們不必在db中存儲歷史。會話將做。
你可以把這樣的事情在你的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
現在,它存儲了包含五個最新網址訪問
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考慮XHR和POST請求。 –
除了'delete_at(0)',還可以使用'shift'。 –
'delete_at'更具可讀性或英文喜歡:) –