Я бы порекомендовал вам использовать фильтр before для достижения этой цели.Например, вы можете сделать следующее:
class ApplicationController
before_filter :delete_session_purchase
protected
def delete_session_purchase
session.delete :path_purchase_page
session.delete :purchase_page_after_login
end
end
class SessionsController
skip_before_filter :delete_session_purchase, :only => [:new, :create]
end
Это будет означать, что при любом обычном запросе вы будете удалять переменные сеанса, которые перенаправляют пользователя на страницу покупки, но при действиях входа в систему вы сохраняете эти переменныевокруг.Это гарантировало бы, что в нормальных условиях переменные сеанса просто удаляются, за исключением случаев, когда вы хотите сохранить их.