Que font les assistants et helper_method?

helper_method est simple: il met certaines ou toutes les méthodes du contrôleur à la disposition de la vue.

Qu’est-ce que l’ helper ? Est-ce l’inverse, c’est-à-dire qu’il importe des méthodes d’aide dans un fichier ou un module? (Peut-être que le nom helper et helper_method sont identiques. Ils peuvent plutôt être share_methods_with_view et import_methods_from_view )

référence

La méthode helper_method consiste à partager explicitement certaines méthodes définies dans le contrôleur pour les rendre disponibles pour la vue. Ceci est utilisé pour toute méthode à laquelle vous devez accéder à partir des contrôleurs et des aides / vues (les méthodes d’assistance standard ne sont pas disponibles dans les contrôleurs). par exemple, cas d’usage commun:

 #application_controller.rb def current_user @current_user ||= User.find_by_id!(session[:user_id]) end helper_method :current_user 

La méthode d’ helper , par contre, permet d’importer un assistant entier dans les vues fournies par le contrôleur (et ses contrôleurs hérités). Qu’est-ce que cela signifie?

 # application_controller.rb helper :all 

Pour les rails> 3.1

 # application.rb config.action_controller.include_all_helpers = true # This is the default anyway, but worth knowing how to turn it off 

rend tous les modules d’assistance disponibles pour toutes les vues (au moins pour tous les contrôleurs héritant de application_controller).

 # home_controller.rb helper UserHelper 

met les méthodes UserHelper à la disposition des vues pour les actions du contrôleur domestique. Cela équivaut à faire:

 # HomeHelper include UserHelper