redirect_to :back

Илья • 22 мая 2008 г.

Оказывается метод redirect_to может принимать аргумент :back.

def destroy
  …
  redirect_to :back
end

Теперь пользователь будет переброшен обратно на ту страницу, с которой пришёл запрос на destroy.

Очень полезно, когда действие может быть вызвано сразу с нескольких страниц и не понятно на какую из них пользователя перебрасывать.

9 комментариев:

  1. estarter:

    да, офигенно, если пользователь пришел с show…

  2. buger:

    Ага а еще весело будет если в браузер сразу вбить /destroy/:id Бесконечные редиректы пойдут, ну относительно бесконечные )

  3. tribesman:

    давно использую, но сталкнулся с тем, что некоторые личности в опере нечайно снимают галочку с пункта передавать referer и тогда случается ошибка, так что приходится использовать вместе с rescue …

  4. kelyar:

    не знаю как сейчас, но раньше это валилось, если http_referer был не определен

  5. Kolinzzz:

    Определённо полезно!

  6. Вася:

    Метод действительно интересный, спасибо.

  7. Нечаев Ваня:

    Спасибо, учту при работе…

  8. Lexa:

    а как реферер проверить?

  9. Dmitry Polushkin:

    Идея хорошая, да реализация хромает. Нужно, к примеру, для полиморфных ресурсов, однако реферер – это то, почему наверное не стоит проверять… самый лучший способ это хранить ссылку на предыдущую страницу в сессии, а лучше всего id + session back url.

Извините, но комментарии для этой статьи уже закрыты.