Dans rails> 4.0.0, les générateurs créent des opérations CRUD avec before_action
not before_filter
. Il semble faire la même chose. Alors, quelle est la différence entre ces deux?
Dans rails> 4.0.0, les générateurs créent des opérations CRUD avec before_action
not before_filter
. Il semble faire la même chose. Alors, quelle est la différence entre ces deux?
Réponses:
Comme on peut le voir dans ActionController::Base
, before_action
est juste une nouvelle syntaxe pour before_filter
.
Cependant, toute la before_filters
syntaxe est déconseillée dans Rails 5.0 et sera supprimée dans Rails 5.1
C'est juste une différence de syntaxe, dans l'application rails, il y a CRUD, et sept actions essentiellement par index de nom , nouveau , créer , afficher , mettre à jour , éditer , détruire .
Rails 4 permet aux développeurs de changer la syntaxe avant le filtre en avant l'action .
méthode d'appel before_action avant les actions que nous déclarons, comme
before_action :set_event, only: [:show, :update, :destroy, :edit]
set_event est une méthode qui appellera toujours avant show, update, edit et destroy.
before_filter / before_action: signifie tout ce qui doit être exécuté avant l'exécution de toute action.
Les deux sont les même. ils sont juste alias l'un pour l'autre car leur comportement est le même.
Pour comprendre quelle est la différence entre before_action et before_filter, nous devons comprendre la différence entre action et filtre.
Une action est une méthode d'un contrôleur vers laquelle vous pouvez router. Par exemple, votre page de création d'utilisateur peut être acheminée vers UsersController # new - nouvelle est l'action dans cette route.
Les filtres s'exécutent en fonction des actions du contrôleur - avant, après ou autour d'eux. Ces méthodes peuvent interrompre le traitement de l'action en redirigeant ou en configurant des données communes vers chaque action dans le contrôleur.
Rails 4 -> _action
Rails 3 -> _filter