rails new コマンドによるアプリ作成

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. 基本構文

bash
rails new <APP_PATH> [オプション]
  • <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. 生成後の初期タスク

  1. DB 作成(Active Record 利用時)

    bash
    bin/rails db:create
  2. 初期コミット

    bash
    git init && git add . && git commit -m "Initial Rails app"
  3. 不要ライブラリの整理Gemfilepackage.json

  4. 環境ごとの設定config/environments/*


6. カスタムテンプレート & .railsrc

  • -m https://…/template.rb で独自 generator スクリプトを適用

  • 毎回同じオプションを使う場合は ホームディレクトリの .railsrc に書いておけばコマンドが短くなる discuss.rubyonrails.org

bash
# ~/.railsrc --database=postgresql --css=tailwind --javascript=esbuild

7. よくある落とし穴とベストプラクティス

  1. オプション重複--minimal--api は併用不可。API で最小構成にしたい場合は --api のみで十分。

  2. Windows 環境 – MSYS2/WSL を利用しないとネイティブ gem のビルドで躓きやすい。

  3. バージョン固定 – 複数案件を扱う場合は bundle initgem 'rails', 'x.y.z' でバージョンをロック。

  4. Docker 開発--skip-docker を省けば Dockerfilebin/docker-entrypoint が自動生成される(Rails 8 以降)。gist.github.com


まとめ

rails new使い方次第でフルスタックから API 専用、極小フットプリント まで作り分けられます。まずは必要最小限オプションで生成し、あとから generator や template、.railsrc を活用して自分の標準構成を確立すると開発体験が向上します。

ChatGPT4o 生成日:2025/06/21