Je me demandais pourquoi quelqu'un devrait utiliser helper_method à l'intérieur d'un contrôleur pour créer une méthode d'aide, au lieu de la création de la voie "normale", qui est à l'intérieur du fichier de helper. Quels sont les avantages et les inconvénients de qui?
Réponses
Trop de publicités?helper_method
est utile lorsque la fonctionnalité est quelque chose qui est utilisé entre le contrôleur et la vue. Un bon exemple est quelque chose comme current_user
.
Si la méthode de traite davantage de la logique du contrôleur et pas la mise en forme, alors il appartient au contrôleur. Quelque chose comme current_user
seraient partagés entre tous les contrôleurs de sorte qu'il devrait être définie en ApplicationController
.
Véritable "helper" méthodes traitent de la vue et de gérer des choses comme la mise en forme et le modèle logique. Ceux-ci sont rarement nécessaires dans le contrôleur, et ils ont leur propre module dans le dossier app/helpers. Vous pouvez les inclure dans votre contrôleur en cas de besoin, mais vous vous retrouvez avec le module entier valant de vue des méthodes d'assistance à la disposition de votre contrôleur.
de méthodes de partage entre le contrôleur et la vue, vous avez plusieurs options:
- utilisation view_context http://apidock.com/rails/AbstractController/Rendering/view_context
- définir dans le contrôleur et les rendre disponibles dans la vue de l'helper_method méthode de classe http://apidock.com/rails/ActionController/Helpers/ClassMethods/helper_method
- définir dans un module partagé et include/étendre