Ruby on rails 如何显示“的列表”;最近访问的网页;

Ruby on rails 如何显示“的列表”;最近访问的网页;,ruby-on-rails,Ruby On Rails,在rails中,如何显示当前用户访问过的最近5个页面的列表 我知道我可以重定向到(request.referer)或重定向到(:back)以链接到最后一页,但如何创建实际的页面历史记录列表 它主要用于原型,因此我们不必将历史存储在数据库中。会话就可以了。您可以在应用程序\u控制器中放置类似的内容: class ApplicationController < ActionController::Base after_action :set_latest_pages_visited

在rails中,如何显示当前用户访问过的最近5个页面的列表

我知道我可以重定向到(request.referer)或重定向到(:back)以链接到最后一页,但如何创建实际的页面历史记录列表


它主要用于原型,因此我们不必将历史存储在数据库中。会话就可以了。

您可以在应用程序\u控制器中放置类似的内容:

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
....
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=5
会话[:历史记录]而不是
delete_(0)
也可以使用
shift
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