rails redirect_to:返回不工作

Lec*_*ico 23 ruby redirect ruby-on-rails

我正在尝试使用以下内容:

class PaymentsController < ApplicationController

  def addproduct
     (session[:products] ||= []) << params[:item]
     redirect_to :back
  end

 end
Run Code Online (Sandbox Code Playgroud)

我有这个例外:

undefined method `back_url' for #<PaymentsController:0x007ff682c467a8>
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

Sur*_*rya 76

Rails 5有redirect_back,而不是redirect_to :back.当请求HTTP_REFERER不存在时,它被用来引发异常.

所以使用这个:

redirect_back fallback_location: root_path
Run Code Online (Sandbox Code Playgroud)

您可以root_path根据自己的要求更改为其他内容.


spi*_*ann 11

redirect_to :back在Rails 5.0中已弃用(请参阅PR),并在Rails 5.1中删除

请改用以下内容:

redirect_back(fallback_location: root_path)
Run Code Online (Sandbox Code Playgroud)