在我的 application_helper.rb
文件我有一个这样的功能:
def internal_request?
server_name = request.env['SERVER_NAME']
[plus more code...]
end
Controller 、模型和 View 中需要此函数。因此,我将此代码放在
lib/
中的实用程序函数文件中。目录。但是,这不起作用:我收到了关于 request
的投诉没有被定义。我如何访问
request
lib/
文件中的对象目录?
最佳答案
在这里似乎可行的最简单的事情是将请求对象传递给方法。
def internal_request?(request)
server_name = request.env['SERVER_NAME']
[plus more code...]
end
假设是在调用此方法时已发出请求,并且您可以将其传递给该方法。
我正在尝试考虑模型需要直接调用此方法的场景。您似乎更有可能想要检查这是否是您的 Controller 中的 internal_request(如果您在 View 中需要它,请将其标记为您的 Controller 中的 helper_method),然后告诉您的模型它是一个 internal_request。
关于ruby-on-rails - rails : how can I access the request object outside a helper or controller?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2576725/