У меня немного нубская проблема. Я хотел, чтобы devise перенаправлял на последнюю страницу, которую посетил пользователь. Итак, я сделал следующее...
def after_sign_in_path_for(resource)
request.referer
end
Отлично работает... за исключением случаев, когда пользователь на самом деле входит в систему через исходную форму, что вызывает цикл перенаправления.
Я пытался
def after_sign_in_path_for(resource)
if (request.referer == "/users/sign_in")
:pages_home
else
request.referer
end
end
Но это не работает, скорее всего потому, что я понятия не имею, что на самом деле возвращает request.referer, когда сталкивается с исходной страницей входа пользователя (www.example.com/users/sign_in).
Любые идеи?
тлдр; Используя devise, я хочу перенаправить на страницу, с которой вы вошли (т.е. /blog/4), если только страница не является /users/sign_in
РЕШЕНО:
Матчу был прав. request.referer также возвращал домен...
http://example.com/users/sign_in
(примечание: без префикса www)
Меня все еще интересует альтернатива request.referer, если это небезопасный или неэффективный способ.