scaffoldをgenerateしてみる

とりあえず、コントローラとscaffoldがgenerateできれば、簡単なアプリなら作れそうかな?

scaffoldは、直訳すると「土台」
なんで土台か分からないけども、データベースへのレコード追加/削除/修正できるものが自動で生成されるらしい。

Rails2.0以降は、scaffoldのgenerateで、modelもmigrationも生成されるようなので楽になったらしい。
なにがどう楽になったのかはサッパリだけど、楽になってるなら楽な方を使っちゃう。

使い方は、

>ruby script/generate scaffold ModelName [field:type, field:type]

helpだと抜けているけども、optionは

>ruby script/generate scaffold [options] ModelName [field:type, field:type]

のモヨウ。

option

お約束の

  • -v, --version
  • -h, --help
  • -p, --pretend
  • -f, --force
  • -s, --skip
  • -q, --quiet
  • -t, --backtrace
  • -c, --svn

に加えて、

--skip-timestamps
自動で追加される作成日時・更新日時のfieldを追加しない
--skip-migration
migrationファイルを生成しない

といったoptionもある。

field:type

field
テーブルの項目
type
項目のタイプ

を、scaffoldをgenerateする時点で指定しないといけないらしい。
指定しなくてもエラーとかは出ないけど、中身のないtableがデータベースに作成されるだけ。
あとからfieldの追加はできるだろうけども、二度手間になるのでココで指定しちゃうほうが賢い。

具体的には、

name:string comment:text weight:integer ...

てな具合。
typeの種類はよくわからないけども、いろいろあるみたい。

scaffoldをgenerateすると、

  • コントローラー
  • ビュー
  • モデル
  • migrationファイル
  • その他もろもろ

が生成される。