text_field tag select_tag rails form_with form_for form ruby-on-rails helper

ruby on rails - tag - ¿Qué hacen helper y helper_method?



rails select_tag (1)

helper_method es sencillo: hace que algunos o todos los métodos del controlador estén disponibles para la vista.

¿Qué es el helper ? ¿Es al revés, es decir, importa métodos de ayuda en un archivo o módulo? (Tal vez el nombre helper y helper_method son iguales. Más bien pueden ser share_methods_with_view e import_methods_from_view )

reference


El método helper_method es compartir explícitamente algunos métodos definidos en el controlador para que estén disponibles para la vista. Esto se usa para cualquier método al que necesite acceder tanto desde controladores como desde helpers / views (los métodos de ayuda estándar no están disponibles en los controladores). por ejemplo, caso de uso común:

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

el método de helper por otro lado, es para importar un ayudante completo a las vistas proporcionadas por el controlador (y sus controladores heredados). Lo que esto significa es hacer

# application_controller.rb helper :all

Para rieles> 3.1

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

hace que todos los módulos auxiliares estén disponibles para todas las vistas (al menos para todos los controladores que heredan de application_controller).

# home_controller.rb helper UserHelper

hace que los métodos de UserHelper estén disponibles para las vistas de las acciones del controlador doméstico. Esto es equivalente a hacer:

# HomeHelper include UserHelper