LoginSignup
4
6

More than 5 years have passed since last update.

Rails Tutorialのsample appがHerokuにデプロイできなかった理由。

Last updated at Posted at 2016-11-27

Rails Tutorialを第5章まで進めた時、今更ながらHerokuにデプロイできていなかったことに気付き、そこからハマりにはまったので書き残します。

状況

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 you
r app
remote: ! and using the production group of your Gemfile.
remote: ! rake aborted!
remote: ! NoMethodError: undefined method `web_console' for #<Rails::Application::Configuration:0x00000000>

何度デプロイを試みてもこんな感じでエラーになる。

原因と対処

原因1 gemのweb_console

自分ではいじっていない部分だったので、戸惑いと「見慣れない部分は見たくない」と思って目をそらしていましたが・・・

このエラーはRailsをproduction環境で動かす時に出ることがあるようで、Gemパッケージのweb_consoleに関する設定がconfig/application.rbや、config/initializersディレクトリ内に記述されている場合に起こります。
私の場合は

config/application.rb
class Application < Rails::Application

  config.web_console.development_only = false
end

となっていました。
通常、Gemfileではweb_consoleをproduction環境で使用しないよう設定されているためにここでエラーが発生するとのこと。

対処

上記のようなディレクトリやファイルにあるweb_consoleの設定に関する記述を、config/environments/development.rbに移動します。

config/environments/development.rb
Rails.application.configure do

  config.web_console.development_only = false
end

原因2 コミットしてない

こちらはいかに私がGitやHerokuについて理解していないかですが・・・
原因1の対処はしていたのに何度デプロイしても失敗したので、一時「これが原因じゃなかったのか」と思っていました。
でももっと根本的なこと。コードを変更したままコミットせずに$git push heroku masterをしていたのです。

対処

対処も何もないのですが・・・

$git commit -am "hogehoge"
$git push
$git push heroku master

まとめ

以上でやっとのことデプロイできました。
「見たくない」とか、コミットしてないってとこでかなり無駄な時間を費やしてしまいました・・・
でも未だ理解は不十分です。コミットしただけで良いのか、それともリモートへのpushも必要なのかわかっていません。
今はRailsを覚えることに集中しているので、チュートリアルが終わったらこちらの仕組みについてもきちんと勉強したいです。

参考にさせていただきました。
原因1
https://www.oiax.jp/books/rails4book/undefined_method_web_console.html
原因2
http://koulog.hatenablog.com/entry/2015/11/19/090000

4
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6