Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21491

【随時更新】Railsのgenerateコマンド集【Scaffoldもあるよ!】

$
0
0

はじめに

Scaffoldを使用する機会があったのですが、基本的なrails g scaffoldしか使用したことがなかったなと思い、特に使えそうなコマンドを調べ、コマンド集として纏めてみました。
折角なので、合わせてgenerateコマンドも纏めてみました。
こんなコマンドもある、このコマンドは違う、などあればコメントにてご教示いただけますと嬉しいです。

コマンド一覧

generateは全て省略してgと書いています。

基本的なgenerateコマンド

Modelの作成

  • ModelMigrationファイルを作成する
$ rails g model [Model名] [columns / name:string state:referencesなど]

Controllerの作成

  • ControllerViewを作成する
  • scaffold_controller(後述)と異なり、RESTを意識していない
  • Controller名で指定した名称がそのまま使用されるので注意が必要(リソースを扱うContollerで複数形にする必要がある場合はsを最初から書いておかないとダメ)
$ rails g controller [Controller名] [オプション(アクション名)]

Migrationファイルの作成

$ rails g migration [Class名] [columns]

rails generate migrationコマンドまとめによると

クラス名は何でもOKだけど「アクション+テーブル名」とかが慣例っぽいです。

らしいです。

アセットファイルを生成する

$ rails g assets [Model名]

スペックファイルを生成する

$ rails g rspec:model [Model名]

generateを取り消したい場合

$ rails destroy [作成した対象/controllerとか] [Model名]

Scaffold系

基本的なScaffold

  • ModelControllerViewRoutingAssetsを作成する
$ rails g scaffold [モデル名(スネークケース)] [各種カラム]

ScaffoldでControllerとViewのみ作成する

  • 既にモデルを作成済の場合は以下のコマンドでControllerViewを作成する(RESTfulなコントローラが作成される)
  • このコマンドではRoutingは行ってくれないため、別途手動で定義が必要
$ rails g scaffold_controller [Model名] [カラム名]
# 指定したカラムのフィールドがViewに定義される

作成済みModelがある状況でScaffoldで作成されるControllerViewが欲しい時

既にModelを作成済みの場合は、以下の作業を行えば rails g scaffold [Model] [column]を実行した場合と同じ状況になります。

  • 以下のコマンドを実行
$ rails g scaffold_controller [作成済Model名] [定義されているcolumn / name:stringなど]

$ rails g assets [作成済Model名]
  • config/routes.rbを修正
config/routes.rb
Rails.application.routes.drawdoresources:model_name# 作成済みModel名を記述end

最後に

調べてみたら、 generateScaffoldも思っていた以上にレパートリーがあって驚きました。
generateコマンドやScaffoldについて、使ったことがないものや知らなかったものがあったのでこの記事を定期的に確認して定着させようと思います。

参考記事


Viewing all articles
Browse latest Browse all 21491

Latest Images

Trending Articles