Я хочу сохранить текущий URL в переменной сеанса для ссылки на предыдущую посещенную страницу.
Если я сохраняю каждый URL (через before_filter в ApplicationController), также действия, которые заканчиваются перенаправлением (создание, обновление и т. Д.), Считаются последней посещенной страницей.
Есть ли способ сообщить Rails только выполнить функцию, если шаблон отображается?
Обновление
Спасибо за совет after_filter ... написав так много before_filters, я не видел очевидного. Но трюк с @performed_redirect не работает-
Это то, что я получил до сих пор
class ApplicationController < ActionController::Base
after_filter :set_page_as_previous_page
def set_page_as_previous_page
unless @performed_redirect
flash[:previous_page] = request.request_uri
else
flash[:previous_page] = flash[:previous_page]
end
end
end
Мне нужно реализовать ссылку «Вернуться», без использования Javascript, HTTP Referer. Извините, если бы я упомянул об этом, я ценю вашу помощь!
Обновление 2
Я нашел решение, которое не очень элегантно и работает, только если ваше приложение следует стандартной схеме именования
def after_filter
if File.exists?(File.join(Rails.root,"app","views", controller_path, action_name+".html.erb"))
flash[:previous_page] = request.request_uri
else
flash[:previous_page] = flash[:previous_page]
end
end