Ruby on Railsで Rails serverコマンドをした時にサーバーが立ち上がらなかった時に対処したことをメモ。
##エラー内容
rails s
としてローカル(http://192.168.33.10:3000/ )にアクセスすると,
ActiveRecord::ConnectionNotEstablished
No connection pool with 'primary' found.
といったようなメッセージが出て上手く動いていない。
ActiveRecordとはRuby on Railsにおいてデータベースとのやりとりに使われているフレームワーク?です。
なのでこのエラーはデータベース関連のエラーであると推測されます。
##Rails db:migrateで確認
ターミナルを見返すとそもそもdb:migrateが上手くいってません
rails db:migrate
とすると
Gem::LoadError: can't activate sqlite3 (~> 1.3.6), already activated sqlite3-1.4.0. Make sure all dependencies are added to Gemfile.
というエラー。
内容はGemのロードエラー。具体的にはsqlite3 (~> 1.3.6)がアクティベートできないけどsqlite3 (1.4.0)はアクティベートされてるよ、というもの。
おそらくRailsが最新版のsqlite3(1.4.0)を受け付けてないと推測。
ちなみに(~>1.3.6)とは '1.3.6以上1.4.0未満'という意味。
##対処法:Gemfileの更新
Rails new したフォルダにあるGemfileの内容を変えましょう。
(初学者の私にとっては「???」状態でしたが。。。)
Gemfile
の中にある
gem 'sqlite3'
という部分を
gem 'sqlite3', '~> 1.3.6'
に変更しましょう。
これで
bundle update
bundle install
というコマンドをターミナル上で実行し、
rails s
晴れてRuby on Railsのデフォルト画面が現れるはず。
初学者でいきなり詰まったところだったのでメモを残します。