よく使うRailsのgenerateコマンドまとめ
はじめに
Rails初学者の自分が、いつもRailsのgenerate
コマンドを使う際にどのコマンドが何を生成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 | アセットを生成しない |