Rendu et/ou rediriger ont été appelés à plusieurs reprises dans cette action..?
Je reçois le DoubleRenderError et je ne peux pas comprendre pourquoi! En gros, j'ai une action qui en appelle une autre action qui vérifie que l'utilisateur saisi de la requête pour les erreurs, et si il y a une erreur, le son s'arrête et affiche le message d'erreur. Mais lorsque je fais une requête avec une erreur, que quand j'ai le double de rendu! Tout suggstions?
Heres l'erreur vérificateur d'action:
def if_user_formulated_request_properly
unless request.post?
flash[:error] = "This page can only be accessed through the search page. (POST request only)"
redirect_to(:action => "index") and return
end
if params[:query].blank?
flash[:error] = "Search criteria can not be blank"
redirect_to(:action => "index") and return
end
if !(params[:query] =~ /-/)
flash[:error] = "( Format of search criteria is wrong.<br /> Should be [IXLSpecClass value][year]-[Message ID] for exam
ple GP07-8)"
redirect_to(:action => "index") and return
end
if !(QueryParser.expression.match(params[:query]))
flash[:error] = %( Format of search criteria is wrong.<br />Should be [IXLSpecClass value][year]-[Message ID] for examp
le GP07-8)
redirect_to(:action => "index") and return
end
yield
Et juste au cas où vous avez besoin de l'action à l'appel de cette action..
def show
if_user_formulated_request_properly do
@statuses = IXLStatus.find(:all)
@input_messages = InputMessage.search_by(params[:query].stri
p) unless params[:query].blank?
@query = params[:query]
end
respond_to do |format|
format.html #default rendering
end
end
end
Mise à JOUR
Aussi oublié de mentionner, c'était à l'origine l'un des rails de 2 app et a été de travail, cette erreur a commencé quand j'ai mis à rails 3 (je crois), donc peut-être rails 3 fait quelque chose de différent avec and return
?
OriginalL'auteur Jonah Katz | 2011-08-31
Vous devez vous connecter pour publier un commentaire.
Vous êtes seul, de retour de la
if_user_formulated_request_properly
méthode, qui signifie à la fois laredirect_to
et larespond_to
faire un rendu.Vous pouvez essayer ceci:
undefined method 'if_user_formulated_request_properly'
J'ai changé le nom de la méthode pour la rendre plus claire, c'est maintenant
user_formulated_request_properly?
.Si j'ai pu corriger tht moi-même 🙂 de toute façon travaillé parfait.. merci beaucoup
OriginalL'auteur Benoit Garret
Ce ma solution pour certains cas:
"La raison sous-jacente est qu'une partie de la response_body est affectée avant l'erreur est déclenchée.
Vous pourriez essayer de vider le corps de la réponse avant d'appeler rendre dans le gestionnaire d'exception."
Source:
DoubleRenderError dans les Rails 4.1 lors du sauvetage de InvalidCrossOriginRequest
OriginalL'auteur Hiep Dinh