Railsで、現在のユーザーがアクセスした最新の5ページのリストを表示するにはどうすればよいですか?
redirect_to(request.referer) または redirect_to(:back) を実行して最後のページにリンクできることは知っていますが、実際のページ履歴リストを作成するにはどうすればよいですか?
これは主にプロトタイプ用であるため、データベースに履歴を保存する必要はありません。セッションで行います。
Railsで、現在のユーザーがアクセスした最新の5ページのリストを表示するにはどうすればよいですか?
redirect_to(request.referer) または redirect_to(:back) を実行して最後のページにリンクできることは知っていますが、実際のページ履歴リストを作成するにはどうすればよいですか?
これは主にプロトタイプ用であるため、データベースに履歴を保存する必要はありません。セッションで行います。
次のようなものを 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 が保存されます
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