10

在我的application_helper.rb文件中,我有一个这样的函数:

def internal_request?
  server_name = request.env['SERVER_NAME']
  [plus more code...]
end

控制器、模型和视图中需要此功能。所以,我把这段代码放在lib/目录中的一个实用函数文件中。但是,这不起作用:我收到有关request未定义的投诉。

如何访问目录request中文件中的对象lib/

4

1 回答 1

2

在这里似乎可行的最简单的事情是将请求对象传递给方法。

def internal_request?(request)
 server_name = request.env['SERVER_NAME']
 [plus more code...]
end

假设是当调用此方法时,已发出请求,并且您可以将其传递给该方法。

我正在尝试考虑模型需要直接调用此方法的场景。您似乎更有可能想要检查这是否是控制器中的 internal_request(如果您在视图中需要它,请将其标记为控制器中的 helper_method),然后告诉您的模型它是一个 internal_request。

于 2012-04-24T11:41:39.950 回答