text_field tag rails number form_for form ruby-on-rails ruby ruby-on-rails-3 controller view-helpers

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?