Assistant helper_method

Je me demandais pourquoi quelqu’un devrait utiliser helper_method dans un contrôleur pour créer une méthode d’assistance, au lieu de créer la méthode “normale”, qui se trouve dans le fichier d’aide. Quels en sont les avantages et les inconvénients?

helper_method est utile lorsque la fonctionnalité est utilisée entre le contrôleur et la vue. Un bon exemple est quelque chose comme current_user .

Si la méthode traite davantage de la logique du contrôleur et non du formatage, elle appartient au contrôleur. Quelque chose comme current_user serait partagé entre tous les contrôleurs, il devrait donc être défini dans ApplicationController .

Les véritables méthodes «d’assistance» traitent la vue et traitent des choses telles que la mise en forme et la logique des modèles. Celles-ci sont rarement nécessaires dans le contrôleur et appartiennent à leur propre module sous app / helpers. Vous pouvez les inclure dans votre contrôleur en cas de besoin, mais vous obtenez la totalité du module de visualisation des méthodes d’assistance disponibles pour votre contrôleur.

Pour partager les méthodes entre le contrôleur et l’affichage, vous avez plusieurs options: