Je veux fournir des liens csv dans une vue et j'ai placé le code de génération csv dans ApplicationHelper
. Cependant, je reçois cette erreur:
undefined method `send_data' for #<#<Class:0x0000010151c708>:0x0000010151a070>
référençant ceci:
send_data content, :type => "text/plain",
:filename => filename,
:disposition => 'attachment'
Si je place le code csv dans un contrôleur, cela fonctionne bien. J'espérais utiliser l'aide pour éviter d'avoir à définir des itinéraires pour chaque contrôleur pour lequel je veux fournir des options csv (j'ai un tas). Comment puis-je faire send_data
(et autres méthodes nécessaires) à la disposition de l’assistant?
helper_method
.Par défaut, les méthodes dans ApplicationController
ne sont accessibles qu'à l'intérieur des contrôleurs.
Ajoutez une méthode à ApplicationController
et exposez-la en tant que méthode d'assistance avec helper_method
:
class ApplicationController < ActionController::Base
helper_method :foo
def foo
"bar"
end
end
Maintenant, la méthode foo
est accessible aux deux contrôleurs et vues.
Si le problème est de rendre les méthodes dans ApplicationHelper disponibles dans tous les contrôleurs, pourquoi ne pas ajouter une ligne
inclut ApplicationHelper
dans le fichier ApplicationController?