はじめに
Ruby on Rails 7 の学習中、通常モードとAPIモードの違い(差分)が気になったので簡単にまとめてみました。
動作環境
Rails 7.0.5
主な差分
- APIモードでは
app
ディレクトリ下のassets
、javascript
ディレクトリが無い -
Gemfile
の内容が異なる -
config
ディレクトリ下のいくつかの設定ファイルの内容が異なる
これら以外にも、こまごまとした違いがいくつかありました。
この中で一番違いが見られたGemfile
について以下でもう少し掘り下げていきます。
Gemfileの違い
RubyGems.orgの各Gemページにリンクしてあります。
通常モードのみ記載があるGem (APIモードでは未記載)
-
sprockets-rails
- JavaScript、CSS、画像などの静的アセットを管理、圧縮、最小化するためのgem。
-
importmap-rails
- JavaScriptモジュールを効率的にインポートするためのマッピングを管理するgem。
-
turbo-rails
- RailsアプリケーションにHotwireの一部であるTurboを統合するgem。
-
stimulus-rails
- StimulusというJavaScriptフレームワークをRailsアプリケーションに統合するgem
-
web-console
- 開発中、エラーが発生した際、ブラウザ上で対話的なコンソール(REPL)を提供するgem。デバッグ用。
-
capybara
- 自動化ブラウザテストのためのgem。ユーザーがブラウザで行うアクションをシミュレートすることが可能。
-
selenium-webdriver
- ブラウザの自動化テストを可能にするgem。JavaScriptを含む動的なWebページをテストするために使用。
-
webdrivers
- ブラウザ用のWebDriverのインストールと管理を自動化するgem。CapybaraやSeleniumと組み合わせて使用。
※ capybara
~ webdrivers
の3つはテスト関係のgem
デフォルトではコメントアウト
-
sassc-rails
- Sassを使用するためのgem。
両モード記載があるがAPIモードではデフォルトでコメントアウト
-
jbuilder
- JSONのビューを作成・管理するためのテンプレートエンジンgem
-
rack-cors
- CORS (Cross-Origin Resource Sharing)のルールを設定し、クロスオリジンのHTTPリクエストを管理するgem。
おわりに
APIモードという機能の特性を踏まえると当然と言えば当然な差ですが、実際に見比べ、gemを調べることによって学びが深まりました。
今回私はエディターの差分チェック機能で検証しました。
他にもLinuxコマンドのdiff
やGitHubでコミット間・ブランチ間の差分を確認する方法があるので、気になった方はぜひご自身でチェックしてみてください。
最後までお読みいただきありがとうございます。
記事内に不備がありましたら遠慮なくご指摘いただけると嬉しいです。