rake:rake任务中未初始化的常量

时间:2012-08-27 16:25:15

标签: ruby-on-rails ruby rake whenever

我在/app/lib下定义了一些自定义类/模块。

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

以下是rake任务的一个示例:

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

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

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

uninitialized constant BoxInterface::Tasc

lib下的文件结构是:

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

这里奇怪的是我们有一个登台服务器,这个代码工作正常。这与环境有关吗?我不确定如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

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

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

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