web-dev-qa-db-fra.com

rails redirect_to: le dos ne fonctionne pas

J'essaie d'utiliser les éléments suivants:

class PaymentsController < ApplicationController

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

 end

J'ai eu cette exception:

undefined method `back_url' for #<PaymentsController:0x007ff682c467a8>

Pourquoi cela se produit-il?

22
Lechucico

Rails 5 a redirect_back , au lieu de redirect_to :back. Il a été modifié car il générait une exception lorsque la requête HTTP_REFERER n'était pas présent.

Alors utilisez ceci:

redirect_back fallback_location: root_path

Vous pouvez changer root_path à autre chose selon vos besoins.

75
Surya

redirect_to :back a été déconseillé dans Rails 5.0 (voir PR ), puis supprimé dans Rails = 5,1

Utilisez plutôt ce qui suit:

redirect_back(fallback_location: root_path)
10
spickermann