Я хочу сохранить текущий URL-адрес в переменной сеанса, чтобы ссылаться на предыдущую посещенную страницу.Как реализовать функцию, которая возвращает URL-адрес последней посещенной страницы
Если я сохраняю каждый URL (через before_filter на ApplicationController), то и действия, которые заканчиваются перенаправлением (создание, обновление и т. Д.), Рассматриваются как последняя посещенная страница.
Есть ли способ сказать Rails только для выполнения функции, если шаблон визуализируется ??
Update
Спасибо за совет 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
Мне нужно реализовать «Go Back» Link, без использования JavaScript, в HTTP Referer. Извините Если бы я сказал об этом, я ценю вашу помощь!
Update 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
Существующий файл вида не позволяет перенаправлять ваш контроллер. – kch 2008-09-19 18:48:57
btw, какая версия рельсов? – kch 2008-09-19 18:51:43