helper_method
est simple: il met certaines ou toutes les méthodes du contrôleur à la disposition de la vue.
Qu'est-ce que helper
? Est-ce l'inverse, c'est-à-dire qu'il importe des méthodes d'assistance dans un fichier ou un module? (Peut-être que le nom helper
et helper_method
sont similaires. Ils peuvent plutôt préférer être share_methods_with_view
et import_methods_from_view
)
La méthode helper_method
consiste à partager explicitement certaines méthodes définies dans le contrôleur pour les rendre disponibles pour la vue. Cette option est utilisée pour toutes les méthodes auxquelles vous devez accéder à partir des contrôleurs et des assistants/vues (les méthodes d'assistance standard ne sont pas disponibles dans les contrôleurs). par exemple. cas d'usage courant:
#application_controller.rb
def current_user
@current_user ||= User.find_by_id!(session[:user_id])
end
helper_method :current_user
la méthode helper
, quant à elle, permet d'importer un assistant complet dans les vues fournies par le contrôleur (et ses contrôleurs hérités). Qu'est-ce que cela signifie, c'est faire
# application_controller.rb
helper :all
Pour 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 auxiliaires disponibles pour toutes les vues (au moins pour tous les contrôleurs héritant de application_controller.
# home_controller.rb
helper UserHelper
rend les méthodes UserHelper disponibles aux vues pour les actions du contrôleur domestique. Cela équivaut à faire:
# HomeHelper
include UserHelper