我在/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
这里奇怪的是我们有一个登台服务器,这个代码工作正常。这与环境有关吗?我不确定如何解决这个问题。
答案 0 :(得分:0)
您是否已将lib目录中的文件夹添加到application.rb
文件中的自动加载路径中?如果您使用的是Rails 3.0或更高版本,则可能必须这样做。
尝试添加以下行:
config.autoload_paths += %W(#{Rails.root}/lib/box_interface/tasc)
在class Application < Rails::Application
文件中的类定义(application.rb
)内部。