尝试在Heroku上进行rake db:migrate
时。我收到以下错误。
rake aborted!
uninitialized constant Rake::DSL
从我收集到的信息来看,这似乎是Rake 0.9.2的错误。如果我在本地执行“ gem 列表”,则仅会显示Rake(0.8.7)。
我尝试将“gem'rake','0.8.7'”添加到我的gem文件并运行捆绑安装,但是随后出现以下错误。
You have requested:
rake = 0.8.7
The bundle currently has rake locked at 0.9.2.
Try running `bundle update rake`
如果我确实运行
bundle update rake
,它会还原为0.9.2,然后回到开始的位置。我是否在这里遗漏了一些明显的东西?
最佳答案
您应该使用bundle exec运行命令,以确保获得正确的依赖关系。因此运行:
bundle exec rake db:migrate
有关更多详细信息,请参阅Yehuda Katz博客文章http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/。
如果您仍然仍然遇到问题,那么似乎有几个其他人都遇到了How to fix the uninitialized constant Rake::DSL problem on Heroku?问题,他们通过将以下内容添加到他们的Rakefile中解决了这些问题:
require 'rake/dsl_definition'
require 'rake'
关于ruby-on-rails - rake 流产了! Heroku上未初始化的常量Rake::DSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6727898/