我有一个很小的 rake 任务,它只是将一个新的延迟作业放入队列中。我已经插入了调试行
desc 'Start processing new rss feed articles'
task :process_new_articles => :environment do
config = RSS_CONFIG
feeds = config['rss_feeds']
puts Article.all
feeds.each do |feed|
Delayed::Job.enqueue ProcessNewArticlesJob.new(feed, config['settings'])
end
end
它似乎正确加载了配置信息。但我在运行任务时收到“未初始化的常量文章”错误。文章是一个MongoMapper模型。我已经验证了与数据库的连接(在 MongoLab 上)工作正常。
这一切在本地都很有效。
--
更奇怪的是,使用“heroku run console”引用 Article.all 效果很好。
--
堆栈跟踪没有显示太多:
2011-12-04T22:33:02+00:00 app[start.1]: rake aborted!
2011-12-04T22:33:02+00:00 app[start.1]: uninitialized constant Article
最佳答案
发现了问题,而且很奇怪。
我不小心将我的文章模型文件命名为“Article.rb”,其中大写字母 A。这导致 Heroku 在运行“rake 环境”时无法识别它。
奇怪,很可能是一个错误?
关于ruby-on-rails - MongoMapper 模型的 Heroku rake 任务未初始化常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379079/