耙0.8.7,耙子流产!未初始化的常量Rake :: DSL

时间:2012-03-20 03:09:40

标签: ruby-on-rails

我在我的Rails项目中使用'rake 0.8.7',但当我仍然尝试rake routesbundle exec rake routes时,我仍然可以

rake aborted!
uninitialized constant Rake::DSL

如果我尝试将推荐的require 'rake/dsl_definition'放入我的Rakefile中,它会给我

rake aborted!
no such file to load -- rake/dsl_definition

所以,我坚持如何解决这个问题。我无法运行任何rake命令......

1 个答案:

答案 0 :(得分:0)

这个错误听起来就像你在你的应用中使用某些东西,需要比0.8.7更新版的rake。相信Rake :: DSL只出现在佣金0.9.0。

最新版本的Rails宣称自己使用的是rake,只有0.8.7。也许这是错的。您更有可能在项目中使用了一些其他 gem,这需要更新的rake。

为什么以及如何在项目中使用rake 0.8.7而不是更新的项目?除非你已经锁定了你的gemfile中的0.8.7(或者使用了一些坚持0.8.7的其他gem),你应该能够运行bundle update rake来升级到最新版本的rake。

如果您安装了多个版本的rake,则可能需要运行bundle exec rake ...,如您所述。但是在你的项目中,bundle exec rake仍然可以获得0.8.7,因为无论出于什么原因,你的Gemfile.lock当前设置为rake的版本 - 但你的项目正在使用想要更新版本的东西。