由于rake版本,rails heroku资产预编译失败

时间:2013-10-05 16:06:01

标签: ruby-on-rails heroku rake

当我试图推送到heroku时,我得到了这个消息:

rake aborted! undefined method empty? for nil:NilClass (in /tmp/build_3d16ad44-0015-4ecb-a7cf-a41959f03f82/app/assets/stylesheets/application.css.scss)

在追踪它时,我意识到这是因为

rake aborted! You have already activated rake 10.0.3, but your Gemfile requires rake 0.9.2.2. Using bundle exec may solve this.

这可能是一个非常愚蠢的问题,但我不确定我应该如何使用bundle exec为heroku执行此操作?请帮忙。感谢。

2 个答案:

答案 0 :(得分:2)

如果其他人遇到类似的问题。问题是heroku正在使用ruby 2.0及其所有新应用程序,所以为了做到这一点,你必须在gemfile上放置你使用的任何ruby版本然后通过键入git reset --soft HEAD~然后git reset HEAD public/assets重置git进入你的命令行。如果您在公共/资产中有未跟踪的文件,请rm -r public/assets。然后保存更改并推送到新站点。

因此,如果您的应用使用旧版本的ruby而不是2.0,则必须进行类似更改,直到错误(链轮?)修复为止。

答案 1 :(得分:0)

在终端的项目目录中:

gem list rake

您将看到多个版本。如果是,则通过命令删除您不需要的版本(例如,在您的情况下为10.0.3):

gem uninstall rake

它将询问您从列表中选择的特定版本,选择一个并按Enter键。

或者,您也可以更新为特定的佣金版

bundle update rake -v '0.9.2.2'