Ruby和/或Rails缓存需要()'ed脚本?

时间:2011-08-08 21:02:56

标签: ruby-on-rails ruby

我正在测试一个基本的Rails应用程序,我似乎在库脚本上得到了一些不受欢迎的缓存行为,这些脚本需要()编辑到我的控制器脚本中。

假设FooController.rb包含以下内容:

require 'utils' # a library script

class FooController
  def some_action
    @some_member = do_something() # global method defined in utils.rb
  end
end

在重新启动Rails服务器之前,utils.rb的更改似乎不会生效。我不相信这是由于Rails的类缓存配置错误,因为a)我在“开发”环境中运行,而b)我可以直接对控制器代码进行更改(例如,{{1上面的方法)在下一次执行脚本时反映出来。我一直在测试这个,通过调用some_action将垃圾邮件发送到控制台。

Ruby或Rails中是否存在导致require() - ed脚本保持缓存的行为?如果是这样,有没有办法配置这种行为?

2 个答案:

答案 0 :(得分:1)

如果您希望每次遇到代码时都require,那么您真的需要load

http://www.ruby-doc.org/core/Kernel.html#method-i-load

答案 1 :(得分:1)

Rails类重新加载器相对天真。我相信它只是为了重新加载控制器和模型之类的东西,只留下你可能需要的任何东西。因此,如果您在lib目录或其他地方有一些自定义代码已经更改,那么您必须重新启动Rails服务器。