2010-06-15 2 views
3

Je suis à la recherche d'une solution de meilleures pratiques pour pouvoir continuer à utiliser la redirection: retour après une action de destruction réussie, car de nombreux éléments peuvent être supprimés à partir d'une variété de listes.Rescuing redirection: retour après destruction dans Rails?

Malheureusement cette stratégie échoue pour un cas où la suppression est lancée à partir de la vue de l'article lui-même.

Quelle approche recommandez-vous pour cette situation?

Répondre

5

Vous devez considérer ce comportement que vous souhaitez si un élément est supprimé de sa propre page de vue ..

Je vous suggère de l'une des deux options:

Garder votre redirect :back et mettre en œuvre certaines sorte de seconde redirection si la ressource demandée existe plus - à savoir /products/10 redirige vers /products

@product = Product.find_by_id(params[:id]) # although I admit I'm not sure 
redirect_to products_path unless @product # about this 

Ou changer la redirection si le chemin particulier correspond à la destruction d'un

@product.destroy # you might need to save the path before you destroy the object.. 
redirect_to :back and return unless request.referrer == product_path(@product) 
redirect_to products_path 

Je ne pense pas qu'il y ait une norme définie en pierre pour ce genre de scénario, mais peut me corrige.

+0

J'aime votre 2ème option car elle évite une autre redirection. Merci. – Andreas

+0

Correction: redirect_to: retour et revenir à moins request.referer == product_path (@product) – Andreas

+0

fixe, merci :) – Jeriko

Questions connexes