【完全リファレンス】rails generate の使い方|model/controller/scaffold/migration等の全generatorを徹底解説
Rails 開発の生産性を大きく支えるのが rails generate コマンド。1行で「モデル + マイグレーション + テスト」、「コントローラ + ビュー + ルーティング」など、必要なファイル一式をコンベンション通りに自動生成してくれます。
bin/rails generate model User name:string email:string
bin/rails generate scaffold Post title:string body:text
bin/rails generate migration AddEmailToUsers email:string
しかし、generator の種類は数多く:
- どの generator を使うべきか迷う(model vs resource vs scaffold)
- 自動生成されるファイルが何か分からない
- カラム型・オプション指定の正しい書き方
- 不要なテストファイル等をスキップしたい
- 間違って生成したファイルの削除方法
- Rails 8 から authentication generator が追加された?
- 自分でカスタム generator を作りたい
など、覚えるべきことが多くあります。
本記事では、rails generate の使い方を、リファレンスとして実用的に整理します。model/controller/scaffold/migration等の基本 generator、Rails 8 の新機能(authentication / Solid Trifecta install)、destroy による取り消し、generator のオプション、カスタム generator 作成、設定カスタマイズ、FAQまで完全網羅。この1本をブックマークすれば、Rails の generator を自信を持って使いこなせるようになります。
- 1. 結論:今すぐ使える基本パターン10選
- 2. まず押さえる:generator の基本
- 3. 主要なgenerator 一覧
- 4. model generator
- 5. controller generator
- 6. resource generator
- 7. scaffold generator
- 8. migration generator
- 9. mailer generator
- 10. job generator
- 11. channel generator(Action Cable)
- 12. Rails 8 の新機能:authentication generator
- 13. Solid Trifecta インストール generator
- 14. アセット系 generator
- 15. その他の generator
- 16. generator のオプション
- 17. ファイル生成の取り消し(destroy)
- 18. generator のカスタマイズ
- 19. カスタム generator の作成
- 20. トラブルシューティング
- 21. よくある質問(FAQ)
- 21.1. Q1. generate と g どっちを使うべき?
- 21.2. Q2. model vs resource vs scaffold の使い分け
- 21.3. Q3. テストフレームワーク変更
- 21.4. Q4. 生成済みファイルの一括削除
- 21.5. Q5. マイグレーション関連で間違えた
- 21.6. Q6. scaffold のビューを変更したい
- 21.7. Q7. generator 一覧の絞り込み
- 21.8. Q8. 自動で routes に追加されないようにしたい
- 21.9. Q9. concerns ディレクトリの generator
- 21.10. Q10. PostgreSQL 拡張機能の generator
- 21.11. Q11. Devise の generator
- 21.12. Q12. Rails 8 で新しく追加された generator
- 22. 参考リンク・関連資料
- 23. まとめ
結論:今すぐ使える基本パターン10選
時間がない方向けに、頻出パターンを先に示します。
# ① モデル生成
bin/rails g model User name:string email:string
# ② コントローラ生成
bin/rails g controller Posts index show new edit
# ③ scaffold(一括生成)
bin/rails g scaffold Article title:string body:text published:boolean
# ④ マイグレーションのみ
bin/rails g migration AddEmailToUsers email:string
# ⑤ Mailer 生成
bin/rails g mailer UserMailer welcome reset_password
# ⑥ ActiveJob 生成
bin/rails g job NotificationJob
# ⑦ Action Cable Channel 生成
bin/rails g channel Chat
# ⑧ Rails 8 認証一式(新機能)
bin/rails g authentication
# ⑨ ヘルプ表示
bin/rails g
bin/rails g model --help
# ⑩ 生成を取り消し
bin/rails destroy model User
詳細は以下で順に解説します。
まず押さえる:generator の基本
コマンド構文
bin/rails generate GENERATOR_NAME ARGUMENTS [OPTIONS]
# 短縮形
bin/rails g GENERATOR_NAME ARGUMENTS [OPTIONS]
利用可能なgenerator確認
bin/rails generate
# または
bin/rails g
出力例:
Rails:
application_record
authentication
benchmark
channel
controller
generator
helper
integration_test
jbuilder
job
mailbox
mailer
migration
model
resource
scaffold
...
詳細ヘルプ
bin/rails g model --help
bin/rails g scaffold --help
bin/rails g controller --help
特定 generator の使い方が確認できます。
dry-run(実行せずに確認)
bin/rails g model User name:string --pretend
# または -p
実行前に「どんなファイルが作られるか」だけ確認できます。
主要なgenerator 一覧
| Generator | 用途 |
|---|---|
model | モデル + マイグレーション + テスト |
controller | コントローラ + ルーティング + ビュー + テスト |
resource | model + controller + ルーティング |
scaffold | resource + ビュー + 一通りの実装 |
migration | マイグレーションのみ |
mailer | メーラー + ビュー + プレビュー |
job | ActiveJob |
channel | Action Cable Channel + JS |
helper | ヘルパー + テスト |
system_test | システムテスト |
integration_test | 統合テスト |
mailbox | Action Mailbox |
task | Rake task |
application_record | ApplicationRecord 基底クラス |
authentication(Rails 8新規) | 認証一式 |
solid_queue:install | Solid Queue インストール |
solid_cache:install | Solid Cache インストール |
solid_cable:install | Solid Cable インストール |
model generator
基本
bin/rails g model User name:string email:string
生成されるファイル:
invoke active_record
create db/migrate/20260620100000_create_users.rb
create app/models/user.rb
invoke test_unit
create test/models/user_test.rb
create test/fixtures/users.yml
| ファイル | 内容 |
|---|---|
db/migrate/xxx_create_users.rb | DBスキーマ作成 |
app/models/user.rb | モデルクラス |
test/models/user_test.rb | モデルテスト |
test/fixtures/users.yml | テストデータ |
カラム型の指定
bin/rails g model Product \
name:string \
description:text \
price:decimal \
stock:integer \
active:boolean \
published_at:datetime
関連(references)
bin/rails g model Post user:references title:string body:text
→ 自動的に:
user_idカラム作成- インデックス追加
- 外部キー制約
- モデルに
belongs_to :user追加
ポリモーフィック関連
bin/rails g model Comment commentable:references{polymorphic} body:text
→
class CreateComments < ActiveRecord::Migration[8.0]
def change
create_table :comments do |t|
t.references :commentable, polymorphic: true, null: false
t.text :body
t.timestamps
end
end
end
UUIDを主キーにする
bin/rails g model User name:string --primary-key-type=uuid
または config で全体に適用:
# config/application.rb
config.generators do |g|
g.orm :active_record, primary_key_type: :uuid
end
インデックス・ユニーク
# 通常インデックス
bin/rails g model User email:string:index
# ユニーク(uniq)
bin/rails g model User email:string:uniq
複合インデックス(手動)
generator では複合インデックスは自動生成されないため、マイグレーションを手動編集。
controller generator
基本
bin/rails g controller Posts index show new edit create update destroy
生成されるファイル:
create app/controllers/posts_controller.rb
invoke erb
create app/views/posts
create app/views/posts/index.html.erb
create app/views/posts/show.html.erb
create app/views/posts/new.html.erb
create app/views/posts/edit.html.erb
invoke test_unit
create test/controllers/posts_controller_test.rb
invoke helper
create app/helpers/posts_helper.rb
| ファイル | 内容 |
|---|---|
app/controllers/posts_controller.rb | コントローラクラス |
app/views/posts/*.html.erb | アクション数分のビュー |
app/helpers/posts_helper.rb | ヘルパーモジュール |
config/routes.rb | ルーティング追加(get ‘/posts/index’等) |
ネスト名前空間
bin/rails g controller Admin::Posts index show
# または
bin/rails g controller admin/posts index show
→ app/controllers/admin/posts_controller.rb に生成、Admin::PostsController クラス。
ルーティング自動追加を抑制
bin/rails g controller Posts --no-route-specs --skip-routes
routes.rb に追加しない(自分で書きたい場合)。
ビュー・ヘルパー・テストをスキップ
bin/rails g controller Posts --no-helper --no-test-framework --no-view-specs
resource generator
model + controller + routes の組み合わせ:
bin/rails g resource Post title:string body:text
生成されるもの:
invoke active_record
create db/migrate/20260620100000_create_posts.rb
create app/models/post.rb
invoke test_unit
create test/models/post_test.rb
create test/fixtures/posts.yml
invoke controller
create app/controllers/posts_controller.rb
invoke erb
create app/views/posts
invoke test_unit
create test/controllers/posts_controller_test.rb
invoke helper
create app/helpers/posts_helper.rb
invoke resource_route
route resources :posts
ポイント:
- ビューファイルは作成されない(個別の
*.html.erbなし) routes.rbにresources :postsが追加- controller は空の状態
「scaffold より控えめ、controller より一歩進んだ」レベル感です。
scaffold generator
最も自動化レベルが高い generator:
bin/rails g scaffold Article title:string body:text published:boolean
生成されるもの(多い!):
invoke active_record
create db/migrate/20260620100000_create_articles.rb
create app/models/article.rb
invoke test_unit
create test/models/article_test.rb
create test/fixtures/articles.yml
invoke resource_route
route resources :articles
invoke scaffold_controller
create app/controllers/articles_controller.rb
invoke erb
create app/views/articles
create app/views/articles/index.html.erb
create app/views/articles/edit.html.erb
create app/views/articles/show.html.erb
create app/views/articles/new.html.erb
create app/views/articles/_form.html.erb
create app/views/articles/_article.html.erb
invoke test_unit
create test/controllers/articles_controller_test.rb
create test/system/articles_test.rb
invoke helper
create app/helpers/articles_helper.rb
invoke jbuilder
create app/views/articles/index.json.jbuilder
create app/views/articles/show.json.jbuilder
create app/views/articles/_article.json.jbuilder
CRUD(Create/Read/Update/Delete)のすべてが実装された状態で生成。
API モードでのscaffold
# Rails の API モード
bin/rails new myapp --api
bin/rails g scaffold Post title:string body:text
ビューファイルは生成されず、JSON 出力(jbuilder)のみ。
scaffold で生成されるコントローラ例
class ArticlesController < ApplicationController
before_action :set_article, only: %i[ show edit update destroy ]
def index
@articles = Article.all
end
def show
end
def new
@article = Article.new
end
def edit
end
def create
@article = Article.new(article_params)
respond_to do |format|
if @article.save
format.html { redirect_to @article, notice: "Article was successfully created." }
format.json { render :show, status: :created, location: @article }
else
format.html { render :new, status: :unprocessable_entity }
format.json { render json: @article.errors, status: :unprocessable_entity }
end
end
end
# update / destroy も生成される
private
def set_article
@article = Article.find(params.expect(:id))
end
def article_params
params.expect(article: [ :title, :body, :published ])
end
end
学習中の人が CRUD 構造を理解するのに最適。
scaffold を使うべきか
| 状況 | 推奨 |
|---|---|
| プロトタイプ・MVP | scaffold |
| 学習目的 | scaffold(コードを読み解く) |
| 本格的な機能 | model + controller を個別作成 |
| 認証や複雑なロジック | resource → 自前でcontroller書く |
scaffold で生成したコードは書き換える前提。そのまま本番で使うことは少ない。
migration generator
スキーマ変更のみを行う:
bin/rails g migration AddEmailToUsers email:string
生成:
create db/migrate/20260620100000_add_email_to_users.rb
命名規約による自動生成
# Add{Columns}To{Table} パターン
bin/rails g migration AddEmailToUsers email:string
# Remove{Columns}From{Table}
bin/rails g migration RemoveEmailFromUsers email:string
# Create{Table}
bin/rails g migration CreateProducts name:string price:decimal
これらは Rails がマイグレーション内容を自動推測してくれます。
命名規約外の場合
# 任意の名前
bin/rails g migration UpdateUserStatus
→ 空のマイグレーションファイル生成。手動で内容を記述。
詳細はrails db:migrate 使い方の記事を参照。
mailer generator
bin/rails g mailer UserMailer welcome reset_password
生成されるもの:
create app/mailers/user_mailer.rb
create app/mailers/application_mailer.rb(既になければ)
invoke erb
create app/views/user_mailer
create app/views/user_mailer/welcome.text.erb
create app/views/user_mailer/welcome.html.erb
create app/views/user_mailer/reset_password.text.erb
create app/views/user_mailer/reset_password.html.erb
invoke test_unit
create test/mailers/user_mailer_test.rb
create test/mailers/previews/user_mailer_preview.rb
mailer の使い方
# app/mailers/user_mailer.rb
class UserMailer < ApplicationMailer
def welcome(user)
@user = user
mail to: user.email, subject: "ようこそ"
end
end
# どこかで
UserMailer.welcome(user).deliver_later
mailer preview
開発時にメールをブラウザで確認:
http://localhost:3000/rails/mailers/user_mailer/welcome
job generator
ActiveJob(バックグラウンドジョブ)の生成:
bin/rails g job ProcessImage
生成:
create app/jobs/process_image_job.rb
create test/jobs/process_image_job_test.rb
# app/jobs/process_image_job.rb
class ProcessImageJob < ApplicationJob
queue_as :default
def perform(*args)
# Do something later
end
end
特定キューを指定
bin/rails g job ProcessImage --queue=image_processing
Solid Queue と組み合わせ
詳細はSolid Queue 使い方の記事を参照。
channel generator(Action Cable)
bin/rails g channel Chat
生成:
create app/channels/chat_channel.rb
identical app/javascript/channels/index.js
identical app/javascript/channels/consumer.js
create app/javascript/channels/chat_channel.js
サーバー側 Channel と、クライアント側 JavaScript を両方生成。
# app/channels/chat_channel.rb
class ChatChannel < ApplicationCable::Channel
def subscribed
# stream_from "some_channel"
end
def unsubscribed
# Any cleanup needed when channel is unsubscribed
end
end
Solid Cable との組み合わせはSolid Cable 使い方の記事を参照。
Rails 8 の新機能:authentication generator
Rails 8 でDevise なしの認証機能を簡単に追加できる generator が追加されました。
基本
bin/rails g authentication
生成されるもの(多い):
create app/models/user.rb
create app/models/current.rb
create app/models/session.rb
create app/controllers/sessions_controller.rb
create app/controllers/passwords_controller.rb
create app/controllers/concerns/authentication.rb
create app/mailers/passwords_mailer.rb
create app/views/sessions/new.html.erb
create app/views/passwords/new.html.erb
create app/views/passwords/edit.html.erb
create app/views/passwords_mailer/reset.html.erb
create app/views/passwords_mailer/reset.text.erb
create test/mailers/previews/passwords_mailer_preview.rb
create db/migrate/20260620100000_create_users.rb
create db/migrate/20260620100001_create_sessions.rb
route resource :session
route resources :passwords, param: :token
bin/rails db:migrate
これだけで以下が実装される:
- User モデル(email + password_digest)
- Session 管理
- ログイン/ログアウト
- パスワードリセット
- 認証 concern(before_action)
Devise との比較
| 機能 | Devise | Built-in(Rails 8) |
|---|---|---|
| Email + Password 認証 | ✅ | ✅ |
| Session管理 | ✅ | ✅ |
| パスワードリセット | ✅ | ✅ |
| アカウント確認 | ✅ | ❌ |
| OAuth | ✅ | ❌ |
| カスタマイズ | △ | ✅(コードを直接編集) |
| 学習コスト | 中 | 低 |
| 適性 | 大規模・複雑要件 | 小〜中規模 |
Solid Trifecta インストール generator
Rails 8 から標準採用された Solid Queue/Cache/Cable を導入:
Solid Queue
bin/rails g solid_queue:install
Solid Cache
bin/rails g solid_cache:install
Solid Cable
bin/rails g solid_cable:install
アセット系 generator
importmap-rails
bin/rails g importmap:install
JavaScript の Import Map をセットアップ。Node.js 不要のフロントエンド構築。
jsbundling-rails
bin/rails g javascript:install:esbuild
# または
bin/rails g javascript:install:bun
bin/rails g javascript:install:rollup
bin/rails g javascript:install:webpack
JS バンドラーをセットアップ。
cssbundling-rails
bin/rails g css:install:tailwind
bin/rails g css:install:bootstrap
bin/rails g css:install:bulma
bin/rails g css:install:postcss
bin/rails g css:install:sass
CSS フレームワーク or ビルドツールをセットアップ。
tailwindcss-rails
bin/rails g tailwindcss:install
Tailwind CSS を即セットアップ。
Propshaft 関連
詳細はPropshaft 使い方の記事を参照。
その他の generator
helper
bin/rails g helper Posts
→ app/helpers/posts_helper.rb 生成。
concern
Rails 8 では:
# モデル concern
mkdir -p app/models/concerns
touch app/models/concerns/searchable.rb
# controller concern
mkdir -p app/controllers/concerns
touch app/controllers/concerns/authorizable.rb
generator は無いため、手動で作成するのが一般的。
system_test(システムテスト)
bin/rails g system_test Users
# test/system/users_test.rb
require "application_system_test_case"
class UsersTest < ApplicationSystemTestCase
# test "visiting the index" do
# visit users_url
#
# assert_selector "h1", text: "Users"
# end
end
E2E テスト用。
integration_test
bin/rails g integration_test Posts
# test/integration/posts_test.rb
require "test_helper"
class PostsTest < ActionDispatch::IntegrationTest
# test "the truth" do
# assert true
# end
end
mailbox(Action Mailbox)
bin/rails g mailbox InboundMail
メール受信処理を実装する場合に使用。
task(Rake task)
bin/rails g task admin_reports daily_report weekly_report
→ lib/tasks/admin_reports.rake 生成:
namespace :admin_reports do
desc "TODO"
task daily_report: :environment do
end
desc "TODO"
task weekly_report: :environment do
end
end
crontab 書き方 例の記事で定期実行も。
generator のオプション
スキップオプション
# テストファイルを生成しない
bin/rails g model User --no-test-framework
bin/rails g model User --skip-test-framework
# fixtures を生成しない
bin/rails g model User --no-fixture
# helper を生成しない
bin/rails g controller Posts --no-helper
# ビューを生成しない
bin/rails g controller Posts --no-helper --skip-template-engine
# routes に追加しない
bin/rails g controller Posts --skip-routes
# scaffold で system test を生成しない
bin/rails g scaffold Post --no-system-tests
dry-run
bin/rails g model User name:string --pretend
# または -p
生成しないで確認のみ。
強制上書き
bin/rails g model User name:string --force
既存ファイルを警告なく上書き。
Quiet mode
bin/rails g model User name:string --quiet
# または -q
出力を最小化。
ファイル生成の取り消し(destroy)
間違った generate を取り消したい時:
# generate で作ったファイルを削除
bin/rails destroy model User
# または短縮形
bin/rails d model User
bin/rails generate model User で作成したファイルがすべて削除されます:
app/models/user.rbdb/migrate/xxx_create_users.rbtest/models/user_test.rbtest/fixtures/users.yml
注意点
⚠️ マイグレーションを実行済みの場合は、destroy する前に DB を rollback:
bin/rails db:rollback # マイグレーション戻す
bin/rails d model User # ファイル削除
詳細はrails db:migrate 使い方の記事を参照。
scaffold の取り消し
bin/rails d scaffold Post
scaffold で生成された大量のファイルを一気に削除。
generator のカスタマイズ
config/application.rb でデフォルト挙動を変更:
config.generators do |g|
# テストフレームワーク
g.test_framework :rspec
# fixtures
g.fixture_replacement :factory_bot, dir: 'spec/factories'
# システムテスト
g.system_tests :rspec
# ヘルパー無効化
g.helper false
# アセット無効化
g.javascripts false
g.stylesheets false
# ORM の主キー
g.orm :active_record, primary_key_type: :uuid
# template engine
g.template_engine :haml
end
RSpec を使う場合
# Gemfile
group :development, :test do
gem 'rspec-rails'
end
# 設定
config.generators do |g|
g.test_framework :rspec
end
これで bin/rails g model 時に test_unit ではなく RSpec ファイルが生成される。
FactoryBot を使う場合
config.generators do |g|
g.fixture_replacement :factory_bot, dir: 'spec/factories'
end
→ fixtures の代わりに factories が生成。
カスタム generator の作成
自社・自アプリ用の generator を作る方法。
基本
bin/rails g generator service_object
create lib/generators/service_object
create lib/generators/service_object/service_object_generator.rb
create lib/generators/service_object/USAGE
create lib/generators/service_object/templates
invoke test_unit
create test/lib/generators/service_object_generator_test.rb
実装
# lib/generators/service_object/service_object_generator.rb
class ServiceObjectGenerator < Rails::Generators::NamedBase
source_root File.expand_path("templates", __dir__)
def create_service_file
template "service.rb.tt", "app/services/#{file_name}_service.rb"
end
end
# lib/generators/service_object/templates/service.rb.tt
class <%= class_name %>Service
def call
# TODO: 実装
end
end
USAGE 説明
# lib/generators/service_object/USAGE
Description:
Creates a service object class.
Example:
bin/rails generate service_object Payment
This will create:
app/services/payment_service.rb
利用
bin/rails g service_object Payment
→ app/services/payment_service.rb が生成。
トラブルシューティング
generator が見つからない
bin/rails g unknown_generator
# => Could not find generator
確認:
bin/rails g # 一覧表示
該当 gem がインストールされているか、Gemfile を確認。
生成されるファイルが少ない
config/application.rb の config.generators で false 設定がある可能性:
# 確認
config.generators do |g|
g.helper false # ← これがあるとヘルパー生成されない
end
routes が自動追加されない
bin/rails g controller Posts --no-routes # ← 明示的にスキップしてる
または config.generators で:
g.controller_specs false
g.routing_specs false
NAMESPACEのファイル配置
bin/rails g controller Admin::Posts
# app/controllers/admin/posts_controller.rb
ディレクトリが自動作成されます。
Solid Trifecta install 後にエラー
詳細はActiveRecord::PendingMigrationError の記事を参照。db:migrate 忘れの可能性。
よくある質問(FAQ)
Q1. generate と g どっちを使うべき?
機能は同じ。慣習的には g の方が多い:
bin/rails g model User
# 短くて打ちやすい
Q2. model vs resource vs scaffold の使い分け
| 状況 | 推奨 |
|---|---|
| モデルだけ欲しい | model |
| モデル + 空コントローラ + ルーティング | resource |
| 一通り動くCRUD | scaffold(学習・プロト用) |
| 本格的な実装 | 個別に model → 自前 controller |
Q3. テストフレームワーク変更
config.generators do |g|
g.test_framework :rspec # または :minitest, :none
end
Q4. 生成済みファイルの一括削除
# generate と同じ引数で destroy
bin/rails d model User
bin/rails d scaffold Post
bin/rails d migration AddEmailToUsers
Q5. マイグレーション関連で間違えた
# 実行済みの場合
bin/rails db:rollback
bin/rails d migration XXX
# ファイル消えた
# まだ実行してない場合
bin/rails d migration XXX
# でOK
Q6. scaffold のビューを変更したい
config/application.rb:
config.generators.template_engine :haml
# または :slim
または scaffold のテンプレートを上書き:
mkdir -p lib/templates/erb/scaffold
cp $(bundle show railties)/lib/rails/generators/erb/scaffold/templates/* lib/templates/erb/scaffold/
# カスタマイズ
Q7. generator 一覧の絞り込み
bin/rails g
# Rails:
# model, controller, scaffold, ...
#
# RSpec:(rspec-rails 入れてれば)
# rspec:model, rspec:controller, ...
Q8. 自動で routes に追加されないようにしたい
config.generators do |g|
g.skip_routes true
end
または個別に:
bin/rails g controller Posts --skip-routes
Q9. concerns ディレクトリの generator
Rails 標準には無し。手動作成が一般的:
mkdir -p app/models/concerns
cat > app/models/concerns/searchable.rb <<'EOF'
module Searchable
extend ActiveSupport::Concern
included do
# ...
end
end
EOF
Q10. PostgreSQL 拡張機能の generator
bin/rails g migration EnablePgcrypto
class EnablePgcrypto < ActiveRecord::Migration[8.0]
def change
enable_extension "pgcrypto"
end
end
Q11. Devise の generator
# Gemfile に gem 'devise' 追加後
bin/rails g devise:install
bin/rails g devise User
Devise 標準の generator が利用可能。
Q12. Rails 8 で新しく追加された generator
主要な新規:
authentication(認証一式)solid_queue:install/solid_cache:install/solid_cable:installkamal:install(Kamal 2 デプロイ)thruster:install(Thruster HTTP/2プロキシ)
参考リンク・関連資料
Rails 公式
- The Rails Command Line(Guide) – 公式コマンドガイド
- Creating and Customizing Rails Generators & Templates(Guide) – generator作成
- Active Record Migrations(Guide) – migration generator
関連 Gem
- Devise – 認証 gem
- RSpec Rails – RSpec generator追加
- FactoryBot Rails – fixture代替
- Haml Rails – Haml template engine
関連記事(本サイト)
- rails db:migrate 使い方 – migrate 詳細
- Rails 8 アップグレードガイド – Rails 8 全般
- Solid Queue 使い方 – solid_queue:install
- Solid Cache 使い方 – solid_cache:install
- Solid Cable 使い方 – solid_cable:install
- Propshaft 使い方 – アセット系
- undefined method nil:NilClass – Rails エラー系シリーズ
- ActiveRecord::RecordNotFound – 同上
- ActionController::RoutingError – 同上
- NameError uninitialized constant – 同上
- ActiveRecord::PendingMigrationError – 同上
- crontab 書き方 例 – task generator と組み合わせ
まとめ
rails generate は Rails 開発の生産性を支える基幹コマンド。要点を再整理します。
- コマンド構文:
bin/rails g GENERATOR ARGS [OPTIONS] - 主要 generator: model / controller / scaffold / resource / migration / mailer / job / channel
- Rails 8 新機能:
authentication、solid_queue:install、solid_cache:install、solid_cable:install、kamal:install - オプション:
--pretend(dry-run)、--no-test-framework、--skip-routes等 - 取り消し:
bin/rails destroy(migration実行済みなら先に rollback) - カスタマイズ:
config.generatorsでデフォルト挙動を変更 - 自作 generator:
lib/generators/配下に作成、template + DSL - 使い分け:
- 学習・プロトタイプ →
scaffold - 本格実装 →
model個別 → 自前controller - 認証 →
authentication(Rails 8)ordevise
- 学習・プロトタイプ →
これらの知識は、Rails アプリの設計・開発の初期段階・継続的な拡張すべてで活用できます。本記事をブックマークしておけば、rails generate のあらゆる場面で適切な選択ができるようになります。
本記事は2026年6月時点の情報をもとに、Ruby on Rails 7.x / 8.x での動作確認・公式ドキュメントに基づき作成しています。Rails のバージョンによって挙動が異なる場合があるため、最新の情報はRails公式ガイドもあわせてご確認ください。
-
前の記事
rails routes の見方|出力の読み方・フィルタオプション・URLヘルパーを徹底解説 2026.06.29
-
次の記事
「apt-get update」で404 Not Foundになる原因と解決方法|Ubuntu/Debian完全解説 2026.06.29
コメントを書く