0

我在/app/lib.

我有一个 Rake 任务,无论何时,它都会尝试加载环境,然后执行其中一个类方法。

这是 rake 任务的示例:

namespace :box do
  task :fetch => :environment do
  BoxInterface::Tasc::Fetcher.fetch
  end
end

如果我BoxInterface::Tasc::Fetcher.fetch从 Rails 控制台运行,它工作正常。

如果我运行,bundle exec rake 'box:fetch'我会收到此错误:

uninitialized constant BoxInterface::Tasc

lib下的文件结构为:

/app/lib/box_interface/tasc/fetcher.rb

奇怪的是,我们有一个暂存服务器,这段代码可以在其中正常工作。这和环境有关系吗?我不确定如何解决这个问题。

4

1 回答 1

1

您是否已将 lib 目录中的文件夹添加到文件中的自动加载路径中application.rb?如果您使用的是 Rails 3.0 或更高版本,您可能必须这样做。尝试添加这一行:

config.autoload_paths += %W(#{Rails.root}/lib/box_interface/tasc)

在文件中的类定义 ( class Application < Rails::Application) 中application.rb

于 2012-08-27T17:35:47.937 回答