Rails redirect_to: назад не работает
Я пытаюсь использовать следующее:
class PaymentsController < ApplicationController
def addproduct
(session[:products] ||= []) << params[:item]
redirect_to :back
end
end
Я получил это исключение:
undefined method `back_url' for #<PaymentsController:0x007ff682c467a8>
Почему это происходит?
Ответы
Ответ 1
Rails 5 имеет redirect_back
вместо redirect_to :back
. Он был изменен, поскольку он использовал для создания исключения, когда запрос HTTP_REFERER
не присутствовал.
Поэтому используйте это:
redirect_back fallback_location: root_path
Вы можете изменить root_path
на что-то еще в соответствии с вашими требованиями.
Ответ 2
redirect_to :back
устарел в Rails 5.0 (см. PR), а затем удален в Rails 5.1
Вместо этого используйте следующее:
redirect_back(fallback_location: root_path)