Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to display a list of "latest pages visited"

In rails, how do I display a list of the lastest 5 pages the current user has visited?

I know that I can do redirect_to(request.referer) or redirect_to(:back) to link to the last page, but how do I create an actual page history list?

Its mainly for a prototype, so we dont have to store the history in the db. Session will do.

like image 568
tolborg Avatar asked May 30 '12 09:05

tolborg


2 Answers

You can put something like this in your 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

Now it store the five latest url visited

like image 114
jigfox Avatar answered Oct 31 '22 15:10

jigfox


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

and later you can do

  redirect_to session[:latest_pages_visited].last
like image 8
Amol Pujari Avatar answered Oct 31 '22 16:10

Amol Pujari