Я думаю, что в вашем подходе есть недостаток. Пока пользователь просматривает страницы и не вошел в систему, будет работать код фильтра. Таким образом, единственный способ session['referer']
будет , а не быть нулевым, - это если они сразу перейдут на страницу регистрации, где они (предположительно) публикуют свои данные для входа, и вы проверите сеанс var.
Я думаю, что вам, вероятно, нужно проверять реферер только один раз - для этого вам придется изменить код фильтра.
def save_referer
unless is_logged_in?
unless session['referer']
session['referer'] = request.env["HTTP_REFERER"] || 'none'
end
end
end
Теперь, когда вы захотите узнать, каков их реферер, это будет либо действительный URL, либо 'none'. Обратите внимание, что, поскольку он находится в сеансе, он не идеален: они могут перейти на другой URL и вернуться, и сеанс все еще будет действительным.