在Rails控制台和控制器中需要加载Ruby模块

3
我需要使用Ruby模块FileUtils来处理一些文件操作。
我想测试这个require语句在我的控制器中是否能正常工作。所以我在控制台中尝试了以下操作,但是结果为false(当我不在Rails控制台而只是一个普通的Ruby控制台时,这个方法可以正常工作):
  1. 进入项目的根目录
  2. $ rails c打开控制台
  3. > require 'fileutils'返回false
正确的方式是什么来着?为什么会返回false?
我认为在我的控制器中可以像这样做,对吗?
def create
  require 'fileutils'
  # my code that uses fileutils.
end
3个回答

7

谢谢steakchaser- 你知道关于在Rails中要求其他模块的最佳实践的文档在哪里吗?我已经通过谷歌搜索,但只找到了Ruby文档。 - Don P
这是一个很好的问题。如果你想让所有东西都可以访问模块的类方法,我可能会选择使用初始化器。更具体地说,你可以引入各种基类(比如 ApplicationController)。或者,它也可以作为一次性需求被引入到某个服务/关注点中,该服务/关注点对另一个库有非常明确的需求(这通常是我最终采取的做法)。 - steakchaser

5

很可能已经默认要求使用了。只需在控制台中键入FileUtils,它应该会做出响应。

 # => FileUtils

2

require返回false表示已经加载。

尝试从控制台执行以下操作:

FileUtils.pwd
# => "/present/working/directory

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接