Rails 4 in Action:无法将代码推送到heroku,sh:2:语法错误:未终止的引用字符串

时间:2016-11-16 06:07:43

标签: ruby-on-rails ruby heroku

我正在阅读Rails 4 In Action书。我在第13章:部署,第457页,您将代码推送到heroku:

git push heroku master

它似乎成功地抓住了所有需要的宝石,因为它到达了这个部分:

remote:        Bundle complete! 27 Gemfile dependencies, 90 gems now installed.
remote:        Gems in the groups development and test were not installed.
remote:        Bundled gems are installed into ./vendor/bundle.
remote:        Bundle completed (29.18s)
remote:        Cleaning up the bundler cache

然后就在那之后它爆炸了并说:

remote: -----> Detecting rake tasks
remote: sh: 2: Syntax error: Unterminated quoted string
remote: sh: 2: Syntax error: Unterminated quoted string
remote:  !
remote:  !     Could not detect rake tasks
remote:  !     ensure you can run `$ bundle exec rake -P` against your app
remote:  !     and using the production group of your Gemfile.
remote:  !     rake aborted!
remote:  !     LoadError: cannot load such file -- net/ssh

我做了它建议并运行bundle exec rake -P。以下是该输出:

rake aborted!

LoadError: cannot load such file -- net/ssh

在学习教程书时,这是一个艰难的部分。我不认为我错过了任何步骤。我不知道该怎么做。任何提示将非常感谢。

1 个答案:

答案 0 :(得分:1)

我想通了,希望这可以帮助其他人遇到同样的问题。

最终对我来说最重要的是我必须更新fog宝石。这本书让你使用版本1.29.0。无论出于何种原因:该版本对我不起作用。

在我的Gemfile中,我只需添加gem "fog",删除我的Gemfile.lock并运行bundle,这样就可以获取最新版本。

之后我查看Gemfile.lock内部并注意到它抓住了fog 1.38.0版本的git push heroku master。现在,当我运行fog时,它运作了。

导致我尝试更新rails 4.2.1的原因是this issue on the fog github page

如果有人好奇:我正在使用ruby 2.2.1,以及本书告诉你的[ReadOnly(true)] public decimal BodyMassIndex { get; private set; }