Rails3のscaffoldを試す

目的

データベースのテーブルをつくり、CRUD処理ができるようにする。

所要時間

5分

作業

ショッピングモールのようなものを作ることが目的なので、まず商品のマスタを管理できるようにします。

テーブルをつくり、商品のCRUD処理を自動生成する

とりあえず、商品には名前と説明、価格という属性があるということにします。

C:\mall>rails g scaffold item name:string body:text price:integer
      invoke  active_record
      create    db/migrate/20100903005218_create_items.rb
      create    app/models/item.rb
      invoke    test_unit
      create      test/unit/item_test.rb
      create      test/fixtures/items.yml
       route  resources :items
      invoke  scaffold_controller
      create    app/controllers/items_controller.rb
      invoke    erb
      create      app/views/items
      create      app/views/items/index.html.erb
      create      app/views/items/edit.html.erb
      create      app/views/items/show.html.erb
      create      app/views/items/new.html.erb
      create      app/views/items/_form.html.erb
      invoke    test_unit
      create      test/functional/items_controller_test.rb
      invoke    helper
      create      app/helpers/items_helper.rb
      invoke      test_unit
      create        test/unit/helpers/items_helper_test.rb
      invoke  stylesheets
      create    public/stylesheets/scaffold.css

これでitemsテーブルの準備と、itemsテーブルのCRUD処理のためのコードが生成されました。
まだテーブルは作られていませんのでrakeコマンドでテーブルを作成させます

C:\mall>rake db:migrate
(in D:/public_html/mall)
==  CreateItems: migrating ====================================================
-- create_table(:items)
   -> 0.0000s
==  CreateItems: migrated (0.0000s) ===========================================

itemsテーブルが作られたので、rails sでサーバを起動してアクセスしてみます
http://localhost:3000/items

こんな画面がでるでしょうか

New Itemをクリックして商品を追加してみましょう

以下のように一覧に追加されました

これで商品のCRUD処理ができるようになりました。

データベースはどこに?

app/db/の下にある*.sqlite3というファイルがデータベースのファイルです。
中身を見る方法はいろいろあるのですが、私はFirefoxのaddonであるSQLite Managerというのを使っています。

今日学んだこと

  • scaffold、migrationあたりの使い方は2系と変わっていない