cre8cre8
AskMe♥

これさえ覚えれば大丈夫!scaffoldをまとめてみた

俺「scaffoldのおかげで彼女ができました。」
はい。うp主のたくみです。Railsのscaffold便利ですよね。
便利すぎてヤヴァイのですが、サブコマンドをよく忘れるのでまとめてみました。
完全に私用の記事なのですが、世界には自分に似た人が少なくとも3人はいるらしいので、
その3人のために公開しておこうと思います。

べ、べつにあんたのために書いたわけじゃないんだからねっ!!

scaffoldの種類

私のよく使うscaffoldを表にまとめてみました。

Type controller model migrate view assets helper routing
scaffod
scaffold_controller × × × ×
model × × × × ×
migration × × × × × ×
controller × ×

…っと解説に入るその前に [scaffoldを取り消したいとき]

解説するからにはscaffoldの試し打ちしたいですよね?ね??
試し打ちして、手で一つづつ rm するのってめんどくさいですよね??ね??
というわけで、scaffoldを無かったことにするコマンドを先にご紹介します。

shell
1rails d TYPE NAME

TYPEにはscaffoldの種類、NAMEには作った際の名前を入れてください。
これでscaffoldは綺麗サッパリなかったことにしてくれます。
それでは、解説にはいりますね♪

scaffold

RailsをRailsたらしめる存在のscaffoldさんです。
RESTfulな設計でコントローラを作成し、モデル・マイグレート・ビュー・アセット・ヘルパーなど全部入りで生成してくれます。
ほとんどの人が一度はお世話になる&一番お世話になると思います。

shell
1# rails g scaffold NAME COLUMN:TYPE COLUMN:TYPE ...
2rails g scaffold book title:string content:text

NAMEは自動的に複数形にしてくれます。
サンプルのようにbookと指定した場合はbooksになります。
(ただし、モデルは単数形です。)

scaffold_controller

RESTfulなコントローラを作成したいときに使用します。
モデルと分離してコントローラを作りたいときによく使います。

shell
1# rails g scaffold_controller NAME
2rails g scaffold_controller person

scaffoldと同じようにNAMEは自動的に複数形になります。
サンプルのpersonの複数形はpeopleですね。
(中の人はpersonsとよく書いてRailsさんに怒られてます。英語力ほちぃ…)

model

ActiveRecordとMigrateを作ります。

shell
1# rails g model NAME COLUMN:TYPE COLUMN:TYPE ...
2rails g model cat name:string

モデルは単数形、マイグレートは複数形に自動でしてくれます。

migration

空のマイグレーションを作ります。
中身は自分で記述する必要あります。

shell
1# rails g migration NAME
2rails g migration dog

controller

コントローラを作成します。
指定したアクションは記述されていますが、アクションの中身は空です。
(アクションを何も指定しなかった場合はコントローラだけできます。)

shell
1# rails g controller NAME ACTION ACTION ...
2rails g controller coffee

ACTIONを指定すると、自動でroutes.rbに追記してくれます。

おまけ [その他のscaffold]

scaffoldには上記以外にもたくさんの種類があります。
参考にRails Ver5.0.0.1のscaffoldの種類一覧を載せますので、
気になったものは調べてみましょう。

≪ 前の記事
NginxとunicornでRails動かしてたらsockがNo such fileと言われたとき
次の記事 ≫
RESTfulにするためRailsのルーティングをresources,namespace,scopeだけで頑張る

いいねやコメントを送っていただけると中の人がしっぽ振って大喜びします♪

あなたへのおすすめの記事