
🎓 Rails 7 対応Webテキスト先行リリース
Railsチュートリアルから、Rails 7 対応のWebテキストを先行リリースしました 🎉 本記事では、Rails 7 対応(第7版)の主な変更点についてご紹介しています 💁♀️
※ Rails 7 対応の解説動画やトレーニングも2023年1月頃にリリースされる予定です。まずはWebテキストのみ一足早くリリースしています 🚀✨
⚖️ 第6版と第7版の違い
大前提としてWebテキストのFAQページで予告していた通り、学べる内容の大枠は第6版と大きく変わっていません。すなわち、テストやGit/GitHub、MVCやRESTful、SessionとCookie、暗号化とハッシュ化、メールを使ったアカウント認証など一連の学べる内容は第6版と同じです。

学べる内容の大枠にあまり変わりはありませんが、学習者の躓きやすい点の改善と、学んだことを次に繋げやすくなった点が改善されています。以下、それぞれの改善点について1つずつ説明していきますね 🎓✨
🐾 学習者の躓きやすい点が改善
Railsチュートリアルの学習者と対話していてよく見かける問題に、クラウド IDE の容量問題や環境構築の難しさがあります。
クラウド IDE 自体は Rails 5 対応版から導入されており、当時は大きな問題にはならなかったのですが、Rails 6 対応版から急激に見られるようになりました。

要因はいくつかありますが、その1つに第6版から導入された Webpacker 経由でインストールされるライブラリが著しく増えた点があります。hello_app、toy_app、sample_app と3つのアプリケーションを通して段階的に学んでいく本書の構成では、この状況はクラウド IDE が容量不足になって動かなくなる要因に繋がります。また、依存ライブラリの状況によっては環境構築やデプロイで失敗することも頻繁に見受けられ、これもまた学習者が挫折するポイントとなっていました 😓
第7版では Rails 7 の Importmap が採用され、必要最低限のライブラリのみインストールされるようになりました。これにより上記の問題が緩和され、クラウド IDE を使った学習や環境構築が大幅に改善されています。またクラウド IDE を使わない devcontainer にも対応しているため、十分に高いスペックの開発環境を持っている学習者であれば、ローカル環境でも Rails 7 対応の第7版を進めやすくなっています。詳細は下記 note 記事からご確認いただけます。
📝 NOTE: 「十分に高いスペックの開発環境」を持っている学習者にとっても良いコンテンツでありつつ、そうでない環境の学習者にとっても良いコンテンツでありたいと考えているため、第7版も引き続きデフォルトではクラウド IDE を採用しています。ご理解頂けると嬉しいです 🙏
📈 学んだことが次に繋げやすくなった
もう1つの改善点は、jQuery を使ったフロントエンドから、Rails 7 で導入された Hotwire を使ったフロントエンドへの移行です。
jQuery は多くのアプリケーションで使われている著名なライブラリです。一方、下記の調査結果をみると jQuery 以外を使う事例も増えています。

もともとRailsチュートリアルでは jQuery を使ったコード自体がほとんど無いため、本書自体にはさほど大きな影響はありません。しかしRailsチュートリアル完走後に焦点を当てると、完走後にフロントエンドを学ぶケースや、Sample App を拡張しながら学ぶケースも増えてきました。
このような場面で Hotwire の特長の1つである「段階的な改善 (Progressive Enhancement)」は有用だと考えています。Hotwire では段階的にフロントエンドの複雑さを増やすことができ、許容できる複雑さに応じて少しずつ導入部分を増やしたり、React や Vue.js への段階的な移行も容易になります。これは完走後にフロントエンドも学ぶケースが増えている昨今において、優れた学びの階段であると私達は考えています (参考: Hotwire 的思考を身につける - TechRacho)。

運営者の視点から様々な学習者と対話していくと、Webの複雑さと学習者の学習量にある程度の相関があるように見えます。Webの複雑さが増えれば学習量も増えていき、学習量が増えれば圧倒される学習者も増えていきます。そのような状況を打破する1つのアプローチとして、私達 'も' Hotwire が掲げている「段階的な改善」が有用であると考えています。
↓ 合わせて読みたい Hotwire 関連の動き
🆙 紹介しきれなかった改善点
上記以外にも、第7版には多くの改善点があります! 1つずつ紹介していきたいところですが、今回は箇条書きで簡潔にまとめておきますね 📝
デフォルトのブランチ名を master から main へ変更 (詳細)
デプロイ先が Heroku 無料プランから Render 無料プランへ変更 (詳細)
セッション固定攻撃と、その対策についての説明を追加 (詳細)
モバイル向けの CSS デザインについて説明を追加
統合テストを役割に応じて分かりやすく分割し、説明を追加
Active Record の Uniqueness の振る舞いについて補足を追加 (詳細)
Ruby/Rails のログやエラーメッセージなどを最新版に差し替え
byebug から rdbg(debug.gem)に置き換え、説明も更新 (詳細)
N+1 クエリ問題の修正や、一部の演習問題を追加 (対応例)
上記以外にも、数えきれないほどの変更点があります。詳しくは、ぜひ先行リリースしたRails 7 対応のWebテキストをお試し頂けると嬉しいです 🙏✨
✅ まとめ & これから
RailsチュートリアルではWebテキストの一部有料化に合わせて、継続的にコンテンツを更新できる体制になりました。営業日のほとんどを学習者が抱える問題解決に充てられるようになったため、より多くの方々がWebサービス開発にチャレンジできる環境づくりに日々注力できています。
また分かりやすい成果の1つとして、2022年11月には「東京都立の大学院で Ruby/Rails 講義を全学科1位にするための授業設計」というタイトルで RubyWorld Conference にも登壇いたしました。

数ある魅力的な講義の中から Ruby/Rails が人気講義の1つになれたのも、問題の特定と改善に集中できる新しい体制へ移行できた影響が大きいと考えています。
今後も多くの方々が学びやすくなる環境の改善に努めていきますので、引き続きRailsチュートリアルをご活用して頂けると嬉しいです 😌💖
🎁 オマケ: 直近のWebテキスト購入者への特典
2022年10月1日以降にWebテキストをご購入された方(解説動画含む)には無料で第7版のWebテキストが読める特典を付与させていただきました。冒頭で述べたとおり学べる内容には第6版と第7版で大きな違いはありませんが、Rails 7 の開発体験を味わってみたい場面などでご活用頂けると幸いです 🛤✨

改めて、引き続きRailsチュートリアルをよろしくお願いします…!! 🙏💖