柴ブログ

プログラミング奮闘記

よく使うRailsのgenerateコマンドまとめ

はじめに

Rails初学者の自分が、いつもRailsgenerateコマンドを使う際にどのコマンドが何を生成or生成しないんだっけ?と忘れがちなので備忘録としてまとめておきます。

Railsのバージョン: 6.0.3.2

generateコマンド早見表

command controller view model migration assets routing test helper
scaffold
scaffold_controller × × × ×
controller × ×
model × × × × ×
resource

scaffold

アプリケーションの基本的な機能の一覧(index)、詳細(show)、新規作成(new/create)、編集(edit/update)、削除(destroy)するために必要なコントローラ、モデル、ビューをまとめて生成する。

$ rails g scaffold モデル名 カラム名:データ型

scaffold_controller

scaffoldからモデル、マイグレーション、アセット、ルーティングを除いた物を生成する。モデルを先に作成した際にはこのコマンドが便利。

controller

アクション名を指定すると、対応するルートをルーター(routes.rb)に追加し、ビューテンプレートのスケルトン(骨格)をviewsディレクトリに生成する。アクション名を指定しない場合はビューのディレクトリのみ生成する。

$ rails g controller コントローラー名 アクション名

階層化されたコントローラーを生成する場合

$ rails g controller 'hoge/fuga'

model

モデルの生成と、テーブルをcreateするマイグレーションを生成する。

$ rails g model モデル名 カラム名:データ型

resource

scaffoldと生成する要素はほとんど同じだが、コントローラーは中身が空で生成され、ビューはディレクトリのみ生成される。

$ rails g resource モデル名 カラム名:データ型

generateコマンドのオプション

それぞれのgenerateコマンドの-hでオプションを見ることができるが、よく使うオプションをまとめ。

オプション 説明
-h ヘルプを表示。オプションの一覧など
-d データベースの種類を指定
-T テストファイルを生成しない
-t 使用するテストフレームワークを指定(デフォルトはtest_unit)
--no-helper/--skip-helper ヘルパーを生成しない
--no-assets/--skip-assets アセットを生成しない

参考