RailsによるアジャイルWebアプリケーション開発第6章まで

とりあえず5章までは何の問題もなく終了。
しかし6章でおもいっきりつまづいた。

$ruby script/generate scaffold product admin
      exists  app/models/
      exists  app/controllers/
      exists  app/helpers/
      exists  app/views/products
      exists  app/views/layouts/
      exists  test/functional/
      exists  test/unit/
wrong number of arguments (1 for 2)

調べてみたらこんな記事が見つかった
scaffoldがwrong number of arguments (1 for 2)でエラーになる
んー、今の僕の症状とぴったりですね。
ようするにrails1.2とrails2では使用が違うということですね。

それで日記の続きにあるようにやってみました。
最初から書くと、

プロジェクト作成
$ rails depot
      create  
      create  app/controllers
    ...
$ cd depot
scaffoldで生成

$ ruby script/generate scaffold product title:string
 description:text image_url:string price:decimal

データベース作成
$ rake db:migrate
$ ruby script/server

といった感じで

http://localhost:3000/products

に正しく表示されるようになりました。
ちなみにrails1.2ではデータベーステーブルを作ってからscaffoldする必要がありましたが、rails2ではscaffoldする時にデータベースの定義ファイルを作ってくれるので、先にscaffoldしてからrakeします。

本ではMySQLを使ってますが、rails2ではデフォルトのデータベースがSQLiteになったということでここではSQLiteでの方法を紹介しました。

rails2.2.2が正しくインストールされてる状態から上記の手順を踏めばうまく表示できるはずです。
なんかid:taka_2さんの日記とほとんど同じ内容になってしまった(笑


railsのバージョンでこんなに仕様が違うとは...
前途多難です。