0

我有一个自定义助手路径 lib/helpers,我通过在 application.rb 中添加以下内容来自动加载它:

config.autoload_paths += %W(classes helpers).map{|dir| "#{Rails.root}/lib/#{dir}"}

其中一个助手 VideoHelper 在其中一种方法中使用 FileHelper:

class VideoHelper

 def my_method
  FileHelper::my_method
 end

end

在使用 rspec 测试 VideoHelper 的 my_method 时,对 FileHelper::my_method 的所有调用都失败了:

NameError:
   uninitialized constant VideoHelper::FileHelper

如果我在 VideoHelper 类声明之前添加对 FileHelper 的调用,则测试成功:

FileHelper
class VideoHelper

 def my_method
  FileHelper::my_method
 end

end

我是否必须在 VideoHelper 中要求 FileHelper,即使它已在 autoload_paths 中声明?

4

1 回答 1

0

找到有关该主题的必读内容:

http://urbanautomaton.com/blog/2013/08/27/rails-autoloading-hell/

于 2013-11-04T16:11:14.310 回答