rails 2.0でscaffold

railsのバージョンを2.0にして、sqliteを使うようにしたので、初めから scaffoldで作ってみることにした。が、色々と変更されていて非常にはまった。。。
参考:http://d.hatena.ne.jp/idesaku/20071211/1197386955

これまでだと、データベースにテーブルを作って(migrateから作ったりも含む)、その内容をもとにmodelを生成し、scaffoldを作っていた。しかし、2.0からはいきなり scaffold から作成するように変更された。scaffoldを作成するときにオプションでモデルのフィールドを指定する。従来通りの方法でやろうとすると、scaffoldが作成できなくて泣くはめになる(自分)

以下 2.0での構築方法。
まず、いきなりscaffoldを作成。nameとageという属性をもったMemberモデルを使用。

$ ruby script/generate scaffold Member name:string age:integer
・・・

オプションで与えた属性をもとに、db/migrate/001_create_members.rb が作成される。
中身はこうなっている。

class CreateMembers < ActiveRecord::Migration
  def self.up
    create_table :members do |t|
      t.string :name
      t.integer :age

      t.timestamps
    end
  end

  def self.down
    drop_table :members
  end
end

id属性は特に明示しなくても、デフォルトでつけてくれるようだ。
これをデータベースに反映

$ rake db:migrate

以上で終了。以前に比べてテーブルの作成やモデルの生成手順が減ってすっきりした感がある。新しい方法でやらないと結構はまるので要注意。