ruby on rails - tag - Cómo llamar a los métodos de ApplicationController desde ApplicationHelper
rails helper controller (2)
Use helper_method
.
Por defecto, los métodos en ApplicationController
solo son accesibles dentro de los Controladores.
Agregue un método al ApplicationController
y helper_method
como un método auxiliar con helper_method
:
class ApplicationController < ActionController::Base
helper_method :foo
def foo
"bar"
end
end
Ahora el método foo
es accesible tanto para Controladores como para Vistas.
Deseo proporcionar enlaces de csv en una vista y coloqué el código de generación csv en ApplicationHelper
. Sin embargo, estoy recibiendo este error:
undefined method `send_data'' for #<#<Class:0x0000010151c708>:0x0000010151a070>
haciendo referencia a esto:
send_data content, :type => "text/plain",
:filename => filename,
:disposition => ''attachment''
Si coloco el código csv en un controlador, funciona bien. Tenía la esperanza de usar el helper para evitar tener que definir rutas para cada controlador para el que quiero ofrecer opciones de csv (tengo un montón). ¿Cómo puedo hacer que send_data
(y otros métodos necesarios) estén disponibles para el ayudante?
Si el problema es hacer que los métodos en ApplicationHelper estén disponibles en todos los controladores, ¿por qué no agregar una línea?
include ApplicationHelper
al archivo ApplicationController?