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 assistants / vues (les méthodes d'assistance standard ne sont pas disponibles dans les contrôleurs). Exemple d'utilisation courante:
#application_controller.rb
def current_user
@current_user ||= User.find_by_id!(session[:user_id])
end
helper_method :current_user
la helper
méthode, d'autre part, consiste à 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
# 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
rend les méthodes UserHelper disponibles aux vues pour les actions du contrôleur domestique. Cela revient à faire:
# HomeHelper
include UserHelper
include UserHelper
est dans leHomeHelper
module, plutôt que dans le contrôleur? AFAIK, l'inclusion simple du module d'assistance dans le contrôleur ne partagera pas les méthodes avec les vues.