Dav*_*vid 48 ruby controller ruby-on-rails view-helpers ruby-on-rails-3
我想在视图中提供csv链接,我将csv生成代码放入ApplicationHelper.但是我收到了这个错误:
undefined method `send_data' for #<#<Class:0x0000010151c708>:0x0000010151a070>
Run Code Online (Sandbox Code Playgroud)
引用这个:
send_data content, :type => "text/plain",
:filename => filename,
:disposition => 'attachment'
Run Code Online (Sandbox Code Playgroud)
如果我将csv代码放在控制器中它工作正常.我希望使用帮助器来避免为每个我想为csv选项提供csv选项的控制器定义路由(我有一堆).如何send_data为助手提供(和其他必要的方法)?
Har*_*tty 111
helper_method.默认情况下,ApplicationController只能在控制器内部访问方法.
添加一个方法ApplicationController并将其作为辅助方法公开,方法helper_method如下:
class ApplicationController < ActionController::Base
helper_method :foo
def foo
"bar"
end
end
Run Code Online (Sandbox Code Playgroud)
现在,foo控制器和视图都可以访问该方法.
Geo*_*geW 10
如果问题是在所有控制器中使ApplicationHelper中的方法可用,为什么不添加一行
include ApplicationHelper
到ApplicationController文件?