Rails 3 façon de faire skip_before_filter, :seulement
Dans les rails de 2,8 nous pouvons écrire skip_before_filter comme ce
skip_before_filter :require_login, :only => [:create,:new,:accept]
ce qui signifie, je voulais appliquer le filtre require_login
seulement à ces actions [:create,:new,:accept]
, et passez le filtre pour les autres.
Mais il semble que, de cette façon est obsolète dans rails 3. Et de nouvelles skip_filter est ajouté. j'ai essayé cette
skip_filter :require_login, :only => [:create,:new,:accept]
mais sa ne fonctionne pas, alors comment puis-je faire dans rails 3.
OriginalL'auteur RameshVel | 2011-07-23
Vous devez vous connecter pour publier un commentaire.
skip_before_filter
n'a pas été abandonné, voir la source.Vous l'utilisez comme prévu.
Alors, comment avez-vous en déduire qu'il ne fonctionne pas correctement?
😀 j'ai souvent confrontés au même genre de situations 😉
OriginalL'auteur apneadiving
Qui est une utilisation incorrecte de
skip_before_filter
.Afin d'appliquer le filtre
require_login
exclusivement pour les actions[:create,:new,:accept]
, et passez le filtre pour les autres, vous devez d'abord appliquer le filtre:Alors vous devez dire à rails d'ignorer ce filtre sauf pour les actions de "créer de nouveaux et de les accepter".
vous pouvez également utiliser
skip_filter
, ce qui vous permet d'inclurebefore_filter
,after_filter
, etaround_filter
filtres:Référence: Rails 3.2 guide
Dans les Rails 4.0, les méthodes équivalentes sont :before_action, et :skip_before_action.
Référence: Rails 4.0 guide
OriginalL'auteur Douglas