11
votes

Les rails ignorent tout avant le filtre

Quelqu'un peut-il me dire comment sauter tout avant les filtres dans les rails 3.

in rails 2.x Nous pourrions faire p>

skip_filter filter_chain


0 commentaires

7 Réponses :


4
votes

ne l'a pas essayé, mais cela pourrait fonctionner: xxx


1 commentaires

réinitialiser_callbacks supprimera complètement le rappel pour l'ensemble du contrôleur et ne permettra pas : sauf ou : seul Mots-clés. Si cela est acceptable, il est mieux et plus compatible avec l'avant que mon code.



0
votes

Ceci est certainement piraté profondément dans les rails du ventre et vous feriez mieux de préciser les rappels à la main, mais la ligne suivante fera le travail:

eval %[skip_filter #{_process_action_callbacks.select { |c|
    [:before, :after, :around].include? c.kind }.collect{|c|
      c.filter.inspect}.join(", ")
    }]


0 commentaires

18
votes

Essayez cette

before_filter :setup
_process_action_callbacks.map(&:filter) #=> [:setup]


1 commentaires

Besoin d'éclater l'argument pour que cela fonctionne: `skip_filter (* _ process_action_callbacks.map (&: filtre))



2
votes

Si vous souhaitez spécifier: Seulement ou: sauf à Skip_filter, utilisez ce qui suit:

skip_filter(*_process_action_callbacks.map(&:filter), :only => [:method1, :method2])


0 commentaires

-4
votes
 skip_before_filters
http://ap.rubyonrails.org/classes/ActionController/Filters/ClassMethods.html#M000132


10
votes

Besoin de sauter tous les filtres est probablement causé par héritage d'une application d'application personnalisée. xxx

dans mon exemple de scénario, au lieu de supprimer le avant_filter < / code> S de Un autreController , il suffit de le laisser hériter de actioncontroller :: base .


0 commentaires

1
votes

Pour les rails 5, j'ai utilisé xxx

Vous devez vérifier le rappel.Kind, sinon _process_action_callbacks retournera tous les rappels, y compris après et et autour , qui soulevera une exception avec skip_before_action méthode.

Le .Compact à la fin supprime nuls de la matrice résultante.


0 commentaires