💭

rails aboutコマンドの使い方

に公開

「rails about」コマンドでRailsプロジェクト情報を一目で確認しよう

便利なコマンドを見つけました

Railsアプリを開発しているとき、バージョン確認のためにruby -vrails -vコマンドを使うことが多いと思います。私もこれまでずっとそうしていました。

$ ruby -v
ruby 3.3.0 (2023-12-25 revision 5124f9ac73) [x86_64-linux]

$ rails -v
Rails 7.2.2.1

ところが最近、もっと便利なコマンド「rails about」を知りました。このコマンド一つで、プロジェクトの環境情報をまとめて確認できるんです!これは知らなかった...!
READMEに環境情報やバージョン情報を詳細に記載しているプロジェクトもありますが、このコマンドを記載しておくだけですみそうです。

rails aboutコマンドとは?

使い方はとても簡単。ターミナルでRailsプロジェクトのディレクトリに移動し、次のコマンドを実行するだけです:

$ rails about

実行すると、こんな感じの情報が一度に表示されます:

About your application's environment
Ruby version        : 3.3.0 (x86_64-linux)
Rails version       : 7.2.2.1
Environment         : development
Database adapter    : postgresql
Middleware          : Rack::Sendfile, ActionDispatch::Static, ...
JavaScript          : esbuild
Application root    : /path/to/your/application

ruby -vrails -vで確認できる情報に加えて、使っているデータベースやJavaScriptのビルドツールまで確認できるなんて!これはチーム開発でも役立ちそうです。

恥ずかしながら、Railsを使い始めてからずっと知りませんでした。
特に複数のRailsプロジェクトを行き来する開発者には必須のコマンドかもしれません。

Rails公式ガイドより引用

Rails公式ガイド(日本語版)では、このコマンドについて以下のように説明されています:

bin/rails aboutを実行すると、Ruby、RubyGems、Rails、Railsのサブコンポーネントのバージョン、Railsアプリケーションのフォルダー名、現在のRailsの環境名とデータベースアダプタ、スキーマのバージョンが表示されます。 チーム内やフォーラムで質問するときや、セキュリティパッチが自分のアプリケーションに影響するかどうかを確認したいときなど、現在使っているRailsに関する情報が必要なときに便利です。

出典: Rails公式ガイド - コマンドライン - bin/rails about

どんなときに役立つ?

環境の違いがすぐわかる!

「本番環境では動くのに開発環境では動かない」というときに、環境の違いをすぐに確認できます。

# 開発環境で確認
$ rails about

# 本番環境で確認
$ RAILS_ENV=production rails about

この2つの出力を比較するだけで、環境の違いが一目瞭然です。

新しいプロジェクトで迷わない!

新しいプロジェクトに参加したとき、「このプロジェクトはどんな構成になっているんだろう?」と悩むことがありますよね。そんなときもrails aboutコマンド一発で基本情報を押さえられます。

複数プロジェクトの管理が楽に!

複数のRailsプロジェクトを管理していると、「あれ?このプロジェクトのRailsバージョンは何だっけ?」となることもありますが、rails aboutですぐに確認できます。

こんな使い方も

頻繁に使うことはないかもしれませんが、他の使い方も記載しておきます。

# データベース情報だけを表示
$ rails about | grep Database
Database adapter          mysql2
Database schema version   20250416164829

# ミドルウェア一覧を別ファイルに保存
$ rails about | grep Middleware > middleware.txt

# 環境変数と組み合わせる(RAILS_ENVなど)
$ RAILS_ENV=production rails about

これらのテクニックは、普段使いというよりは特定の状況で役立つものです。トラブルシューティングや環境比較が必要になったときに思い出してみてください。

株式会社Grooves

Discussion