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