0

当我尝试推送到 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 做到这一点?请帮忙。谢谢。

4

2 回答 2

2

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

因此,如果您的应用使用比 2.0 更旧的 ruby​​ 版本,您将不得不进行类似的更改,直到错误(sprocket?)得到修复。

于 2013-10-07T16:22:55.440 回答
0

在终端的项目目录中:

gem list rake

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

gem uninstall rake

它将要求您从列表中选择特定版本,选择一个并按 Enter。

或者,您也可以更新到特定的 rake 版本

bundle update rake -v '0.9.2.2'
于 2013-10-05T17:32:11.227 回答