2010-08-17 4 views
0

J'ai l'application basée uniquement sur les appels ajax mais j'ai besoin de vérifier en permanence la valeur décroissante de la variable de session. J'ai créé un before_filter avec un redirect_to :action => :action_name pour une raison quelconque cela ne fonctionne pas pour moi.Je vois dans le journal Filter chain halted as [:method_name] rendered_or_redirected. mais en fait rien ne se passe Est-ce que quelqu'un sait quel est le problème? Je voulais faire le code DRY avec l'aide de filtres, mais ressemble il est le traitement pas les demandes ajax :(before_filter dans les requêtes Rails et ajax

le code est assez simple (c'est un jeu en réalité) est ici la méthode qui pend sur before_filter

def check_winner 
    if session[:game].user.cards.length == 0 || session[:game].pc.cards.length == 0 
    flash[:notice] = "The end" 

    redirect_to :action => "win" 
    end  
end 

session [: jeu] conserve plusieurs objets que j'initialize au début du jeu. Je n'ai jamais utilisé de filtres rails avec ajax mais ça fonctionnait toujours avec des requêtes http normales L'utilisateur déclenche des actions partout via link_to_remote J'ai essayé de rendre ajax mise à jour de page sur la méthode de filtre mais il me renvoie erreur de rendu :(

+0

pouvez-vous voir le code before_filter? – shingara

+0

'redirect_to' donne en fait une redirection (302) au navigateur, ce n'est probablement pas ce que vous voulez. Vous devez être plus précis quant à ce que vous essayez de faire. Aussi s'il vous plaît code postal. Nous aurons besoin de pratiquement tout le code pertinent. – rfunduk

Répondre

0

Je ne pense pas que vous voulez rediriger dans le before_filter utilisez-vous pour rediriger vers une action spécifique AJAX? Une meilleure alternative consiste à utiliser un bloc responds_to pour répondre à des requêtes spécifiques ou simplement avoir une URL spécifique à ajax qui est appelée.

Questions connexes