耙子流产!Heroku上未初始化的常量Rake :: DSL

Jon*_*Jon 6 rake ruby-on-rails heroku

当试图rake db:migrateHeroku上.我收到以下错误.

rake aborted!
uninitialized constant Rake::DSL
Run Code Online (Sandbox Code Playgroud)

从我收集的内容来看,这似乎是Rake 0.9.2的一个错误.如果我在本地做"宝石列表",则只安装Rake(0.8.7).

我尝试将"gem'rake','0.8.7'"添加到我的gem文件并运行bundle install但是后来我收到以下错误.

You have requested:
rake = 0.8.7

The bundle currently has rake locked at 0.9.2.
Try running `bundle update rake`
Run Code Online (Sandbox Code Playgroud)

如果我bundle update rake,它将恢复为0.9.2,和我回来了,我开始了.

我错过了一些明显的东西吗?

JDu*_*til 10

您应该使用bundle exec运行命令以确保获得正确的依赖项.所以运行:

bundle exec rake db:migrate
Run Code Online (Sandbox Code Playgroud)

有关更详细的帖子,请参阅Yehuda Katz博客文章http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/

如果你仍然有问题似乎有其他几个人有同样的问题如何解决Heroku上未初始化的常量Rake :: DSL问题?他们通过在他们的Rakefile中添加以下内容来解决:

require 'rake/dsl_definition'
require 'rake'
Run Code Online (Sandbox Code Playgroud)