rails new コマンドとは
rails new アプリ名 は、指定したディレクトリに Rails アプリの骨組み(Gemfile、ディレクトリ構造、各種設定ファイルなど)を自動生成し、Bundler で依存 gem をインストールまで行う “プロジェクトスキャフォールディング” ツールです。Rails 8 系の --help 出力を見ると、数十種類のオプションで生成内容を細かく制御できることがわかります。gist.github.com
1. 事前準備
| 項目 | 推奨バージョン (2025-06 時点) | 備考 |
|---|---|---|
| Ruby | 3.3 系以上 | ruby -v で確認 |
| Rails | 7.1 または 8.0 (edge) | gem install rails |
| DB | SQLite3 / PostgreSQL / MySQL など | -d オプションで選択 |
| Node.js / Yarn | ESBuild や Tailwind を選ぶ場合のみ必須 |
※ バージョン管理には rbenv / asdf 等を推奨。
2. 基本構文
-
<APP_PATH>にディレクトリ名、または.を指定するとカレントディレクトリに生成 -
生成後に
cd <APP_PATH> && bin/rails serverで動作確認
3. 代表的なオプション分類
| 分類 | 代表オプション | 説明 |
|---|---|---|
| データベース | -d postgresql, -d mysql, … |
初期 DB アダプタ設定 |
| JavaScript | -j esbuild, -j bun, --skip-javascript |
JS バンドラ選択/完全スキップ discuss.rubyonrails.org |
| CSS | -c tailwind, -c bootstrap |
cssbundling-rails が適用 |
| API 専用 | --api |
コントローラ/ミドルウェアを API 向けに絞る guides.rubyonrails.org |
| ミニマル | --minimal |
Active Mailer などを除外した軽量構成 gist.github.com |
| スキップ系 | --skip-active-record, --skip-action-mailer, --skip-git ほか |
不要コンポーネントを除外 |
| その他 | --template=URL, --edge, --devcontainer |
独自テンプレート、最新ブランチ、Dev Container など |
4. 生成例
| 目的 | コマンド例 | ポイント |
|---|---|---|
| フルスタック Web | rails new blog_app -d postgresql -c tailwind -j bun |
Tailwind + Bun を組込み |
| API バックエンド | rails new backend --api -d postgresql |
ビュー層を省き JSON API に特化 guides.rubyonrails.org |
| 超軽量・静的サイト | rails new static_site --minimal --skip-active-record --skip-javascript |
DB と JS を完全に除外 btihen.devdiscuss.rubyonrails.org |
5. 生成後の初期タスク
-
DB 作成(Active Record 利用時)
-
初期コミット
-
不要ライブラリの整理(
Gemfileやpackage.json) -
環境ごとの設定(
config/environments/*)
6. カスタムテンプレート & .railsrc
-
-m https://…/template.rbで独自 generator スクリプトを適用 -
毎回同じオプションを使う場合は ホームディレクトリの
.railsrcに書いておけばコマンドが短くなる discuss.rubyonrails.org
7. よくある落とし穴とベストプラクティス
-
オプション重複 –
--minimalと--apiは併用不可。API で最小構成にしたい場合は--apiのみで十分。 -
Windows 環境 – MSYS2/WSL を利用しないとネイティブ gem のビルドで躓きやすい。
-
バージョン固定 – 複数案件を扱う場合は
bundle init→gem 'rails', 'x.y.z'でバージョンをロック。 -
Docker 開発 –
--skip-dockerを省けばDockerfileとbin/docker-entrypointが自動生成される(Rails 8 以降)。gist.github.com
まとめ
rails new は 使い方次第でフルスタックから API 専用、極小フットプリント まで作り分けられます。まずは必要最小限オプションで生成し、あとから generator や template、.railsrc を活用して自分の標準構成を確立すると開発体験が向上します。
ChatGPT4o 生成日:2025/06/21