未来エンジニア養成所Blog

月単価180万以上のプログラミング講師がプログラミングを皆に楽しんでもらうための情報をお届けします。

Ruby on Rails エラー解決(備忘録)

最近はRails 6.0 を使用していたのですが、久しぶりに Rails 5.0 を使用したら色々とエラーを出しまくってしまいました、、、、。

環境

Cloud9

ruby 2.6.3p62

Rails 5.0.7.2


一つ目のエラー

/home/ubuntu/.rvm/gems/ruby-2.6.3/gems/railties-5.0.7.2/lib/rails/railtie/configuration.rb:95:in `method_missing': undefined method `hosts' for #<Rails::Application::Configuration:0x000055bfeaa676d8> (NoMethodError)

rails s

を実行したらところでタイトルのエラーが発生しました。

rails new hello

として、アプリケーションを作成しただけなのに、、、、、、。


と思いましたが、そんなことは無いです。

Rails 6.0 の時にはいつもやっていた config/environments/development.rb のファイルに下記を追加していました。

Rails.application.configure do
  .
  .
  .
  # Cloud9 への接続を許可する
  config.hosts.clear
end


思い当たるのはここ!

なので、とりあえず削除して再度サーバー起動です。

ubuntu:~/environment/hello $ rails s
=> Booting Puma
=> Rails 5.0.7.2 application starting in development on http://localhost:8080
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.6 (ruby 2.6.3-p62), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:8080
Use Ctrl-C to stop

はい、無事に起動しました。


続いて、ブラウザでの表示です。


二つ目のエラー

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)

また、エラー発生です。


どうもこれは sqlite3 のバージョンがあっていなさそうですね。

現在のGemfileの設定では

gem 'sqlite3'

となっていますので、

gem 'sqlite3', '~> 1.3.0'

に変更します。(1.3.6 の方が良かったのか?と後から思いましたが、、、)

bundle install

を実行して、再度サーバー起動です。

ブラウザの表示もして見ます。

You're on Rails!


無事に初期画面が表示されました。


何度やっても最初の環境設定は失敗しますね(泣)




オンラインプログラミングスクール
未来エンジニア養成所Logo