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系と変わっていない