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
)
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