我在我的Rails项目中使用'rake 0.8.7',但当我仍然尝试rake routes
或bundle 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命令......
答案 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的版本 - 但你的项目正在使用想要更新版本的东西。