5

Railsで、現在のユーザーがアクセスした最新の5ページのリストを表示するにはどうすればよいですか?

redirect_to(request.referer) または redirect_to(:back) を実行して最後のページにリンクできることは知っていますが、実際のページ履歴リストを作成するにはどうすればよいですか?

これは主にプロトタイプ用であるため、データベースに履歴を保存する必要はありません。セッションで行います。

4

2 に答える 2

11

次のようなものを 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

これで、アクセスした最新の 5 つの URL が保存されます

于 2012-05-30T09:33:34.537 に答える
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
于 2012-05-30T09:31:36.113 に答える