Перенаправление на задний план устарело в Rails5. Что использовать вместо этого?
Если вы попытались перейти на Rails 5.1, вы, вероятно, столкнулись со следующей ошибкой.
undefined method `back_url’
Причиной ошибки является эта строка кода в вашем действии контроллера.
redirect_to :back
Да, функция redirect_to не принимает :back в качестве аргумента в Rails 5. Она была заменена недавно улучшенной функцией redirect_back.
redirect_back(fallback_location:"/")
redirect_back(fallback_location: { action: "show", id: 5})
redirect_back(fallback_location: users_path)
Теперь вам может быть интересно, зачем было нужно это изменение? И какая польза от fallback_location?
Redirect_to: назад зависит от переменной заголовка запроса HTTP_REFERER. Реферер HTTP — это необязательное поле заголовка HTTP, которое идентифицирует адрес веб-страницы (т. е. URI или IRI), связанной с запрашиваемым ресурсом. Если бы запрос был по прямой ссылке, то HTTP_REREFER отсутствовал бы в заголовке запроса. В таком случае Rails выдавал ошибку. До Rails 5.1 это нужно было явно обрабатывать с помощью условия или блока восстановления.
Следовательно redirect_back введена функция. Требуется аргумент резервное_местоположениекоторый будет использоваться для перенаправления страницы в случае HTTP_REREFER отсутствует.Начните писать здесь…