在我的application_helper.rb
文件中,我有一个这样的函数:
def internal_request?
server_name = request.env['SERVER_NAME']
[plus more code...]
end
控制器,模型和视图中需要此功能。因此,我将此代码放在lib/
目录中的实用程序函数文件中。但是,这不起作用:我抱怨request
没有被定义。
如何访问request
目录中文件中的lib/
对象?
答案 0 :(得分:2)
这里似乎最简单的事情就是将请求对象传递给方法。
def internal_request?(request)
server_name = request.env['SERVER_NAME']
[plus more code...]
end
假设是在调用此方法时已经发出请求,并且您可以将其传递给方法。
我试图想一个模型需要直接调用此方法的场景。似乎您可能想要检查它是否是控制器中的internal_request(如果您在视图中需要它,请将其标记为控制器中的helper_method),然后告诉您的模型它是internal_request。