ChatGPTと相談しながらRailsチュートリアルをやっていくよ!

このスクラップについて
基本的にはチュートリアル実行中に詰まったところや気になった点をメモしていきます!
スクラップの投稿目的
Railsの勉強をする時の備忘録として役に立つと聞いたので試しにやってみます。
どんなことを書いていく?
エラーが出て詰まった箇所と解決した方法や、チュートリアルを進めていて気になったところについて書いていく予定です。
最初のほうはChatGPTに残していたものから投稿します。
どうやって勉強しているの?
ChatGPTと相談しながらRailsチュートリアルを進めています!拙い言語能力を補ってくれるので非常に助かっています。
エラーが出たらChatGPTに相談しつつ、自分でも検索します。
ChatGPTには「こういうことかな?」と自分なりにまとめたことの確認や、学習中の独り言、ちょっと気になったことに対して返答してもらっています。
使っているPC
MacBook Air (2020, M1)
- メモリ:8GB
- OS(2025/02/01時点):Sequoia 15.3

環境構築で詰まった その1
チュートリアルを参考にRailsのv7.0.4.3をインストールした後、rails -v
でバージョンを確認しようとすると以下のエラーが発生しました。
'<module:LoggerThreadSafeLevel>':
uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger (NameError)
どうやら1ヶ月程前にActiveSupportと依存関係があるconcurrent-ruby
のバージョンが1.3.4→1.3.5に上がったらしく、その変更内容がエラーと関係しているみたいです。
v1.3.5でloggerへの依存を削除したからとかなんとか…(詳しいことはよく分かっていない)
ちなみに、この変更はRailsのv7.1.0以前のバージョンにも影響があるらしいです。
v7.1.0以上は解決済み。
解決方法
以下のいずれかを実施すれば解決します。
- concurrent-rubyのバージョンを1.3.4にする
- Gemfileに
gem "concurrent-ruby", "1.3.4"
を追記(または修正) - ターミナルで
bundle install
を実行する
concurrent-ruby v1.3.4
を自動でインストールしてくれます
- Gemfileに
- Railsのバージョンを7.1.0以上に指定してインストールする
個人的には、今後はRails v7.1.0以上を使う機会が増えるんじゃないかな…と思うので、2つ目の方法で進めていくことにしました。
参考

環境構築で詰まった その2
rails new コマンドの実行で以下のエラーが発生しました。
can't find gem bundler (= 2.4.19) with executable bundle (Gem::GemNotFoundException)
gem list bundler
を実行して今PCに入っているbundlerのバージョンを確認してみると…
*** LOCAL GEMS ***
bundler (2.5.6)
どうやらバージョン違いによる影響らしいです。元々の環境にはbundler v2.5.6
が入っていました。
今回はチュートリアルに合わせてv2.4.19のbundlerを使用します。
解決方法
- バージョン2.4.19のbundlerをインストールする
- ターミナルで
gem install bundler -v 2.4.19
を実行
- ターミナルで
もう一度gem list bundler
でバージョンを確認すると。
*** LOCAL GEMS ***
bundler (2.5.6, 2.4.19)
これで再度、rails new コマンドを実行したらうまくいきました!

環境構築で詰まった 番外編1
bundle install
を実行したらこんな感じのエラーが発生しました。
Fetching source index from https://rubygems.org/
Retrying fetcher due to error (2/4): Bundler::HTTPError Could not fetch specs from https://rubygems.org/ due to underlying error <Errno::EHOSTUNREACH: Failed to open TCP connection to rubygems.org:443 (No route to host - connect(2) for "rubygems.org" port 443) (https://rubygems.org/specs.4.8.gz)>
Retrying fetcher due to error (3/4): Bundler::HTTPError Could not fetch specs from https://rubygems.org/ due to underlying error <Errno::EHOSTUNREACH: Failed to open TCP connection to rubygems.org:443 (No route to host - connect(2) for "rubygems.org" port 443) (https://rubygems.org/specs.4.8.gz)>
Retrying fetcher due to error (4/4): Bundler::HTTPError Could not fetch specs from https://rubygems.org/ due to underlying error <Errno::EHOSTUNREACH: Failed to open TCP connection to rubygems.org:443 (No route to host - connect(2) for "rubygems.org" port 443) (https://rubygems.org/specs.4.8.gz)>
Could not fetch specs from https://rubygems.org/ due to underlying error <Errno::EHOSTUNREACH: Failed to open TCP connection to rubygems.org:443 (No route to host - connect(2) for "rubygems.org"
port 443) (https://rubygems.org/specs.4.8.gz)>
"EHOSTUNREACH"はネットワーク、あるいはホストに到達できないというエラーです。
この時、たまたま図書館のフリーWi-Fiに繋いで作業していたのでそのせいだと思います。
ネットワークやセキュリティソフトによってはrubygems.orgへの接続がブロックされている可能性があるとかなんとか…(詳しいことはまだよく分かっていない)
一時的な回避策としてGemfileに記載しているsource "https://rubygems.org"
の箇所を、https→httpに編集してもう一度bundle install
を実行するとインストールができました。
インストール完了を確認したら即刻元のURLに戻しましょう。
ちなみに自宅に帰ってからsource "https://rubygems.org"
の状態でbundle install
を実行すると何事もなく普通にインストールできました。
後から調べると、以下記事のような方法もあったみたいです。

初めてRails(およびRuby)に触れた感想
- 見やすい!
- 書きやすい!!
- 名前と場所さえ気をつければControllerとかViewとかの関連付けを自動でしてくれて楽!!
「Railsすごいぞ!」と思ったところ:規約に従うだけで動いてくれる
そう、名前と場所さえ守ればあとの関連付けはRails側でやってくれるのです。
Railsというものは、設定やら何やら考えるのが面倒な私のような人のための…
『面倒くさがりのためのフレームワーク』といっても過言ではないでしょう!!(知らんけど)