几年前,当Rake打破Rails时,我看到了这个错误,但这看起来很奇怪。
我昨天刚刚将我的Rails 3.2.16应用程序部署到Heroku,但现在预编译资产失败,没有任何资产更改。完整错误如下:
Running: rake assets:precompile
rake aborted!
uninitialized constant Rake::DSL
/tmp/build_96e5edbe-65ff-42fc-a7e8-e59432cc8de0/Rakefile:7:in `<top (required)>'
好奇,如果最近发生了重大变化,或者我错过了什么会突然发生变化。
Rake是版本10.1.0。本地Ruby版本1.9.3和Heroku版本1.9.2。
看到这个:https://groups.google.com/forum/#!topic/heroku/6yjIiP69NqI(从大约2年前开始),建议不要只使用include Rake::DSL
class Rails::Application
include Rake::DSL
end
但是,不知道为什么会在一夜之间改变。
答案 0 :(得分:2)
我刚才遇到了同样的问题。我在Gemfile中将ruby版本更新为2.0.0(它是1.9.2)并在此之后成功部署。
要更新版本,只需在Gemfile中的源代码行下添加:
ruby "2.0.0"
我希望这也能解决你的问题。
答案 1 :(得分:0)
与其他人一样的问题,只是突然出现更新应用程序并推送到heroku导致此错误。如果我找到任何东西,我会在这里更新。
答案 2 :(得分:0)
Huzzah,在重新安装rake并更新Rakefile以获得DSL支持后,我成功运行了'git push heroku master'。
重新安装Rake:
gem uninstall rake
*我选择卸载所有版本
gem install rake
更新Bundler:
bundle update
更新Rakefile,添加require:
require 'rake/dsl_definition'
更新Rakefile,添加模块:
module ::ApplicationName
class Application
include Rake::DSL
end
end
*确保将ApplicationName更新为您的应用名称。
致力于git并运行更新:
git push heroku master
希望有助于让你们恢复运行,不知道Heroku发生了什么,但如果这可以纠正你的问题@ muzcat007,也许你可以更新你的Heroku票,让他们看看这个奇怪的新DSL要求。
干杯