未来エンジニア養成所Blog

プログラミングを皆に楽しんでもらうための情報をお届けします。

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