チュートリアルの2週目は、Railsのバージョンを最新のものにして進めています。
(Gemfileはテキストとは異なる内容で進めている状態。)
ruby "3.2.1"
"rails", "~> 7.0.4", ">= 7.0.4.2"
3章のデプロイで失敗しました。
原因はこちらに書いてある模様。
! Unable to load application: LoadError: Error loading the 'postgresql' Active Record adapter. Missing a gem it depends on? pg is not part of the bundle. Add it to your Gemfile.
Mar 3 11:08:29 PM bundler: failed to load command: puma (/opt/render/project/.gems/bin/puma)
Mar 3 11:08:29 PM /opt/render/project/rubies/ruby-3.2.1/lib/ruby/site_ruby/3.2.0/bundler/rubygems_integration.rb:280:in `block (2 levels) in replace_gem': Error loading the 'postgresql' Active Record adapter. Missing a gem it depends on? pg is not part of the bundle. Add it to your Gemfile. (LoadError)
Railsチュートリアルではdevelopment環境とproduction環境で異なるデータベースを使っていますが、その部分に関してGemfileの記述が足りていませんでした。
それぞれ記述。
group :development, :test do
# See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
gem "sqlite3", "~> 1.4"
gem "debug", platforms: %i[ mri mingw x64_mingw ]
end
group :production do
gem "pg", "1.3.5"
end
そしてターミナルで以下を実行し、再度コミットとプッシュ。
bundle install
エラーは解消され、デプロイできました。
ただ、PostgreSQLをdevelopment環境にインストールして設定できるようになるのが理想とのこと。
ちょっとやってみたいところです。