before_filter ne pas annuler l’action

Je n’arrive pas à obtenir les filtres pour travailler dans une application Rails que j’ai récemment mise à niveau de 1.9 (?) À 2.3.11. Pour essayer de le déboguer, j’ai mis un before_filter dans un contrôleur:

before_filter :false_filter 

et ce qui suit dans application_controller.rb:

 def false_filter puts "false filter running" false end 

J’appelle alors la méthode à partir de concombre / webrat ou d’un navigateur, et pendant que le filtre est appelé (je peux voir les mises en sortie du message), la chaîne de filtrage ne se termine pas.

Je me demande s’il existe un code standard qui n’a pas été généré. Quelqu’un peut-il suggérer où chercher?

Rien ne fait attention à la valeur de retour d’un filtre avant. Si vous souhaitez arrêter le traitement, vous devez effectuer un rendu à partir de votre filtre ou redirect vers un autre site, à partir du guide détaillé :

Si un filtre avant rend ou redirige, l’action ne s’exécutera pas. Si d’autres filtres sont programmés pour s’exécuter après ce filtre, ils sont également annulés.

Le même texte apparaît dans le guide 5.2.0 .

Ce comportement a du sens, si la chaîne de filtrage ne se termine pas (c.-à-d. Arrête le filtrage en cours de route), vous finirez par appeler les méthodes du contrôleur avec des éléments non configurés. , la souffrance et la confusion et cela ne serait pas du tout amical ou amusant.