未初始化的常量ModelObserver - Heroku上的Rake任务

Esp*_*pen 3 rake activerecord ruby-on-rails heroku

Rake任务执行ActiveRecord模型操作.我添加ActiveRecord::Base了rake任务,并在本地工作,但不是在Heroku上导致此错误:

未初始化的常量BookingObserver

就行了ActiveRecord::Base.如果我不包括该行,那么我根本不能使用该模型(导致类似的错误仅针对模型而不是观察者).

Tho*_*emm 5

在执行 ActiveRecord 代码之前,您的 rake 任务需要加载 Rails 环境。

# lib/tasks/my_tasks.rake
task :my_task => :environment do
  # Your task here
  # it has access to the Rails environment now
end
Run Code Online (Sandbox Code Playgroud)

另请参阅此类似问题Railscast 上的自定义 rake 任务


Esp*_*pen 5

我在使用config.threadsafe!它禁用依赖加载(因此不加载观察者,只加载模型).解决方案是添加config.dependency_loading = true,如果$ rails_rake_task到环境.