質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.37%

Railsチュートリアルがherokuで動かない

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 596

tra

score 10

前提・実現したいこと

Railsチュートリアル1章(https://railstutorial.jp/chapters/beginning?version=5.1#code-rails_command)をローカル環境でやっています。
heroku環境で動かしたいです。

rails serverではhello_appが動作するのですが、heroku上ではApplicationErrorになっています。しかし原因が分かりません。どこの何をどうすれば解決できるのか教えていただけませんでしょうか。

発生している問題・エラーメッセージ

Application error

該当のソースコード

vim Gemfile
bundle install --without production
git commit -a -m "Update Gemfile for Heroku"
git push heroku master
heroku open
source 'https://rubygems.org'

# git_source(:github) do |repo_name|
#   repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
#   "https://github.com/#{repo_name}.git"
# end


# Rails tutorial setting
gem 'rails', '5.1.6'
gem 'puma', '3.9.1'
gem 'sass-rails',  '5.0.6'
gem 'uglifier', '3.2.0'
gem 'coffee-rails', '4.2.2'
gem 'jquery-rails', '4.3.1'
gem 'turbolinks', '5.0.1'
gem 'jbuilder', '2.6.4'

group :development, :test do
    gem 'sqlite3', '1.3.13'
    gem 'byebug', '9.0.6', platform: :mri
end

group :development do
    gem 'web-console', '3.5.1'
    gem 'listen', '3.1.5'
    gem 'spring', '2.0.2'
    gem 'spring-watcher-listen', '2.0.1'
end

group :production do
    gem 'pg', '0.20.0'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

試したこと

$ heroku run rails console

Running rails console on ⬢ intense-ravine-83722... up, run.6449 (Free)
/app/vendor/bundle/ruby/2.4.0/gems/activerecord-5.1.6/lib/active_record/connection_adapters/connection_specification.rb:188:in `rescue in spec': Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 'sqlite3'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord). (Gem::LoadError)
    from /app/vendor/bundle/ruby/2.4.0/gems/activerecord-5.1.6/lib/active_record/connection_adapters/connection_specification.rb:185:in `spec'
    from /app/vendor/bundle/ruby/2.4.0/gems/activerecord-5.1.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:880:in `establish_connection'
    from /app/vendor/bundle/ruby/2.4.0/gems/activerecord-5.1.6/lib/active_record/connection_handling.rb:58:in `establish_connection'
    from /app/vendor/bundle/ruby/2.4.0/gems/activerecord-5.1.6/lib/active_record/railtie.rb:124:in `block (2 levels) in <class:Railtie>'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:69:in `instance_eval'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:69:in `block in execute_hook'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:60:in `with_execution_control'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:65:in `execute_hook'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:50:in `block in run_load_hooks'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:49:in `each'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:49:in `run_load_hooks'
    from /app/vendor/bundle/ruby/2.4.0/gems/activerecord-5.1.6/lib/active_record/base.rb:326:in `<module:ActiveRecord>'
    from /app/vendor/bundle/ruby/2.4.0/gems/activerecord-5.1.6/lib/active_record/base.rb:25:in `<top (required)>'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `block in require'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:258:in `load_dependency'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
    from /app/app/models/application_record.rb:1:in `<top (required)>'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `block in require'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:258:in `load_dependency'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:379:in `block in require_or_load'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:36:in `block in load_interlock'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies/interlock.rb:12:in `block in loading'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/concurrency/share_lock.rb:149:in `exclusive'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies/interlock.rb:11:in `loading'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:36:in `load_interlock'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:357:in `require_or_load'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:335:in `depend_on'
    from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:251:in `require_dependency'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/engine.rb:476:in `block (2 levels) in eager_load!'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/engine.rb:475:in `each'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/engine.rb:475:in `block in eager_load!'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/engine.rb:473:in `each'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/engine.rb:473:in `eager_load!'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/engine.rb:354:in `eager_load!'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/application/finisher.rb:67:in `each'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/application/finisher.rb:67:in `block in <module:Finisher>'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/initializable.rb:30:in `instance_exec'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/initializable.rb:30:in `run'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/initializable.rb:59:in `block in run_initializers'
    from /app/vendor/ruby-2.4.5/lib/ruby/2.4.0/tsort.rb:228:in `block in tsort_each'
    from /app/vendor/ruby-2.4.5/lib/ruby/2.4.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
    from /app/vendor/ruby-2.4.5/lib/ruby/2.4.0/tsort.rb:431:in `each_strongly_connected_component_from'
    from /app/vendor/ruby-2.4.5/lib/ruby/2.4.0/tsort.rb:349:in `block in each_strongly_connected_component'
    from /app/vendor/ruby-2.4.5/lib/ruby/2.4.0/tsort.rb:347:in `each'
    from /app/vendor/ruby-2.4.5/lib/ruby/2.4.0/tsort.rb:347:in `call'
    from /app/vendor/ruby-2.4.5/lib/ruby/2.4.0/tsort.rb:347:in `each_strongly_connected_component'
    from /app/vendor/ruby-2.4.5/lib/ruby/2.4.0/tsort.rb:226:in `tsort_each'
    from /app/vendor/ruby-2.4.5/lib/ruby/2.4.0/tsort.rb:205:in `tsort_each'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/initializable.rb:58:in `run_initializers'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/application.rb:353:in `initialize!'
    from /app/config/environment.rb:5:in `<top (required)>'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/application.rb:329:in `require'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/application.rb:329:in `require_environment!'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/command/actions.rb:16:in `require_application_and_environment!'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/commands/console/console_command.rb:96:in `perform'
    from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
    from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
    from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/command/base.rb:63:in `perform'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/command.rb:44:in `invoke'
    from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.6/lib/rails/commands.rb:16:in `<top (required)>'
    from /app/bin/rails:9:in `require'
    from /app/bin/rails:9:in `<main>'

補足情報(FW/ツールのバージョンなど)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

$brew install postgresql
$sudo gem install sqlite3 -v '1.3.13' -- --with-sqlite3-lib=/usr/lib
$bundle config build.sqlite3 --with-sqlite3-lib=/usr/lib
$bundle install --path vendor/bundle

上記をやってもダメだったので、

  • heroku(ブラウザ)のプロジェクトを全削除
  • git reset --hard でheroku処理前に戻す

をやったのち、

source 'https://rubygems.org'

# git_source(:github) do |repo_name|
#   repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
#   "https://github.com/#{repo_name}.git"
# end


# Rails tutorial setting
gem 'rails', '5.1.6'
gem 'puma', '3.9.1'
gem 'sass-rails',  '5.0.6'
gem 'uglifier', '3.2.0'
gem 'coffee-rails', '4.2.2'
gem 'jquery-rails', '4.3.1'
gem 'turbolinks', '5.0.1'
gem 'jbuilder', '2.6.4'

group :development, :test do
    gem 'sqlite3', '1.3.13' # sqlite3 gemをdevelop, test環境だけで使い、production環境では使わない(heropとの競合を防ぐ)
    gem 'byebug', '9.0.6', platform: :mri
end

group :development do
    gem 'web-console', '3.5.1'
    gem 'listen', '3.1.5'
    gem 'spring', '2.0.2'
    gem 'spring-watcher-listen', '2.0.1'
end

group :production do
    gem 'pg', '0.20.0'
end


# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
$bundle install --without production
$git commit -a -m "Update Gemfile for Heroke"
$heroku login
$heroku keys:add
$heroku create
$git push heroku master
$heroku open


を実行したら解決しました。

ただ、この状態でpushすると、

fatal: repository 'https://git.heroku.com/xxx.git/' not found


と怒られたので、新しく作ったプロジェクトの名前をブラウザ上でxxxに変更しました。

*もしかすると、

group :production do
    gem 'pg', '0.20.0'
end


を追加前はSublime, 追加時はvimで操作していたことが原因かもしれません。
失礼しました。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.37%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る