changelog shortlog tags manifest raw

changeset: add scaffold order_item.

changeset 12: 755229281e85
parent 11:094fe4526925
child 13:907a36cf5ba1
author: moriq <moriq@moriq.com>
date: Mon Mar 10 03:51:59 2008 +0900 (16 years ago)
files: app/controllers/order_items_controller.rb app/helpers/order_items_helper.rb app/models/order.rb app/models/order_item.rb app/views/layouts/order_items.html.erb app/views/order_items/edit.html.erb app/views/order_items/index.html.erb app/views/order_items/new.html.erb app/views/order_items/show.html.erb config/routes.rb db/migrate/004_create_order_items.rb test/fixtures/order_items.yml test/fixtures/orders.yml test/fixtures/products.yml test/functional/order_items_controller_test.rb test/functional/orders_controller_test.rb test/functional/products_controller_test.rb test/unit/order_item_test.rb test/unit/order_test.rb
description: add scaffold order_item.
--- a/app/models/order.rb	Mon Mar 10 03:31:38 2008 +0900
+++ b/app/models/order.rb	Mon Mar 10 03:51:59 2008 +0900
@@ -1,2 +1,3 @@ class Order < ActiveRecord::Base
 class Order < ActiveRecord::Base
+  has_many :items, :class_name => 'OrderItem'
 end
--- a/config/routes.rb	Mon Mar 10 03:31:38 2008 +0900
+++ b/config/routes.rb	Mon Mar 10 03:51:59 2008 +0900
@@ -1,4 +1,6 @@ ActionController::Routing::Routes.draw d
 ActionController::Routing::Routes.draw do |map|
+  map.resources :order_items
+
   map.resources :orders
 
   map.resources :products
--- a/test/fixtures/orders.yml	Mon Mar 10 03:31:38 2008 +0900
+++ b/test/fixtures/orders.yml	Mon Mar 10 03:51:59 2008 +0900
@@ -1,8 +1,8 @@
 # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
 
-one:
-  name: MyString
-  email: MyString
+moriq:
+  name: moriq
+  email: moriq@moriq.com
 
 two:
   name: MyString
--- a/test/fixtures/products.yml	Mon Mar 10 03:31:38 2008 +0900
+++ b/test/fixtures/products.yml	Mon Mar 10 03:51:59 2008 +0900
@@ -1,9 +1,9 @@
 # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
 
-one:
+carrot:
   name: にんじん
   price: 100
 
-two:
+onion:
   name: たまねぎ
   price: 150
--- a/test/functional/orders_controller_test.rb	Mon Mar 10 03:31:38 2008 +0900
+++ b/test/functional/orders_controller_test.rb	Mon Mar 10 03:51:59 2008 +0900
@@ -21,23 +21,23 @@ class OrdersControllerTest < ActionContr
   end
 
   def test_should_show_order
-    get :show, :id => orders(:one).id
+    get :show, :id => orders(:moriq).id
     assert_response :success
   end
 
   def test_should_get_edit
-    get :edit, :id => orders(:one).id
+    get :edit, :id => orders(:moriq).id
     assert_response :success
   end
 
   def test_should_update_order
-    put :update, :id => orders(:one).id, :order => { }
+    put :update, :id => orders(:moriq).id, :order => { }
     assert_redirected_to order_path(assigns(:order))
   end
 
   def test_should_destroy_order
     assert_difference('Order.count', -1) do
-      delete :destroy, :id => orders(:one).id
+      delete :destroy, :id => orders(:moriq).id
     end
 
     assert_redirected_to orders_path
--- a/test/functional/products_controller_test.rb	Mon Mar 10 03:31:38 2008 +0900
+++ b/test/functional/products_controller_test.rb	Mon Mar 10 03:51:59 2008 +0900
@@ -21,23 +21,23 @@ class ProductsControllerTest < ActionCon
   end
 
   def test_should_show_product
-    get :show, :id => products(:one).id
+    get :show, :id => products(:carrot).id
     assert_response :success
   end
 
   def test_should_get_edit
-    get :edit, :id => products(:one).id
+    get :edit, :id => products(:carrot).id
     assert_response :success
   end
 
   def test_should_update_product
-    put :update, :id => products(:one).id, :product => { }
+    put :update, :id => products(:carrot).id, :product => { }
     assert_redirected_to product_path(assigns(:product))
   end
 
   def test_should_destroy_product
     assert_difference('Product.count', -1) do
-      delete :destroy, :id => products(:one).id
+      delete :destroy, :id => products(:carrot).id
     end
 
     assert_redirected_to products_path
--- a/test/unit/order_test.rb	Mon Mar 10 03:31:38 2008 +0900
+++ b/test/unit/order_test.rb	Mon Mar 10 03:51:59 2008 +0900
@@ -1,8 +1,9 @@ require File.dirname(__FILE__) + '/../te
 require File.dirname(__FILE__) + '/../test_helper'
 
 class OrderTest < ActiveSupport::TestCase
-  # Replace this with your real tests.
-  def test_truth
-    assert true
+  fixtures :all
+
+  def test_items
+    assert_equal(2, orders(:moriq).items.size)
   end
 end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/controllers/order_items_controller.rb	Mon Mar 10 03:51:59 2008 +0900
@@ -0,0 +1,85 @@
+class OrderItemsController < ApplicationController
+  # GET /order_items
+  # GET /order_items.xml
+  def index
+    @order_items = OrderItem.find(:all)
+
+    respond_to do |format|
+      format.html # index.html.erb
+      format.xml  { render :xml => @order_items }
+    end
+  end
+
+  # GET /order_items/1
+  # GET /order_items/1.xml
+  def show
+    @order_item = OrderItem.find(params[:id])
+
+    respond_to do |format|
+      format.html # show.html.erb
+      format.xml  { render :xml => @order_item }
+    end
+  end
+
+  # GET /order_items/new
+  # GET /order_items/new.xml
+  def new
+    @order_item = OrderItem.new
+
+    respond_to do |format|
+      format.html # new.html.erb
+      format.xml  { render :xml => @order_item }
+    end
+  end
+
+  # GET /order_items/1/edit
+  def edit
+    @order_item = OrderItem.find(params[:id])
+  end
+
+  # POST /order_items
+  # POST /order_items.xml
+  def create
+    @order_item = OrderItem.new(params[:order_item])
+
+    respond_to do |format|
+      if @order_item.save
+        flash[:notice] = 'OrderItem was successfully created.'
+        format.html { redirect_to(@order_item) }
+        format.xml  { render :xml => @order_item, :status => :created, :location => @order_item }
+      else
+        format.html { render :action => "new" }
+        format.xml  { render :xml => @order_item.errors, :status => :unprocessable_entity }
+      end
+    end
+  end
+
+  # PUT /order_items/1
+  # PUT /order_items/1.xml
+  def update
+    @order_item = OrderItem.find(params[:id])
+
+    respond_to do |format|
+      if @order_item.update_attributes(params[:order_item])
+        flash[:notice] = 'OrderItem was successfully updated.'
+        format.html { redirect_to(@order_item) }
+        format.xml  { head :ok }
+      else
+        format.html { render :action => "edit" }
+        format.xml  { render :xml => @order_item.errors, :status => :unprocessable_entity }
+      end
+    end
+  end
+
+  # DELETE /order_items/1
+  # DELETE /order_items/1.xml
+  def destroy
+    @order_item = OrderItem.find(params[:id])
+    @order_item.destroy
+
+    respond_to do |format|
+      format.html { redirect_to(order_items_url) }
+      format.xml  { head :ok }
+    end
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/helpers/order_items_helper.rb	Mon Mar 10 03:51:59 2008 +0900
@@ -0,0 +1,2 @@
+module OrderItemsHelper
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/models/order_item.rb	Mon Mar 10 03:51:59 2008 +0900
@@ -0,0 +1,4 @@
+class OrderItem < ActiveRecord::Base
+  belongs_to :order
+  belongs_to :product
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/layouts/order_items.html.erb	Mon Mar 10 03:51:59 2008 +0900
@@ -0,0 +1,17 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
+  <title>OrderItems: <%= controller.action_name %></title>
+  <%= stylesheet_link_tag 'scaffold' %>
+</head>
+<body>
+
+<p style="color: green"><%= flash[:notice] %></p>
+
+<%= yield  %>
+
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/order_items/edit.html.erb	Mon Mar 10 03:51:59 2008 +0900
@@ -0,0 +1,27 @@
+<h1>Editing order_item</h1>
+
+<%= error_messages_for :order_item %>
+
+<% form_for(@order_item) do |f| %>
+  <p>
+    <b>Order</b><br />
+    <%= f.text_field :order %>
+  </p>
+
+  <p>
+    <b>Product</b><br />
+    <%= f.text_field :product %>
+  </p>
+
+  <p>
+    <b>Quantity</b><br />
+    <%= f.text_field :quantity %>
+  </p>
+
+  <p>
+    <%= f.submit "Update" %>
+  </p>
+<% end %>
+
+<%= link_to 'Show', @order_item %> |
+<%= link_to 'Back', order_items_path %>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/order_items/index.html.erb	Mon Mar 10 03:51:59 2008 +0900
@@ -0,0 +1,24 @@
+<h1>Listing order_items</h1>
+
+<table>
+  <tr>
+    <th>Order</th>
+    <th>Product</th>
+    <th>Quantity</th>
+  </tr>
+
+<% for order_item in @order_items %>
+  <tr>
+    <td><%=h order_item.order %></td>
+    <td><%=h order_item.product %></td>
+    <td><%=h order_item.quantity %></td>
+    <td><%= link_to 'Show', order_item %></td>
+    <td><%= link_to 'Edit', edit_order_item_path(order_item) %></td>
+    <td><%= link_to 'Destroy', order_item, :confirm => 'Are you sure?', :method => :delete %></td>
+  </tr>
+<% end %>
+</table>
+
+<br />
+
+<%= link_to 'New order_item', new_order_item_path %>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/order_items/new.html.erb	Mon Mar 10 03:51:59 2008 +0900
@@ -0,0 +1,26 @@
+<h1>New order_item</h1>
+
+<%= error_messages_for :order_item %>
+
+<% form_for(@order_item) do |f| %>
+  <p>
+    <b>Order</b><br />
+    <%= f.text_field :order %>
+  </p>
+
+  <p>
+    <b>Product</b><br />
+    <%= f.text_field :product %>
+  </p>
+
+  <p>
+    <b>Quantity</b><br />
+    <%= f.text_field :quantity %>
+  </p>
+
+  <p>
+    <%= f.submit "Create" %>
+  </p>
+<% end %>
+
+<%= link_to 'Back', order_items_path %>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/order_items/show.html.erb	Mon Mar 10 03:51:59 2008 +0900
@@ -0,0 +1,18 @@
+<p>
+  <b>Order:</b>
+  <%=h @order_item.order %>
+</p>
+
+<p>
+  <b>Product:</b>
+  <%=h @order_item.product %>
+</p>
+
+<p>
+  <b>Quantity:</b>
+  <%=h @order_item.quantity %>
+</p>
+
+
+<%= link_to 'Edit', edit_order_item_path(@order_item) %> |
+<%= link_to 'Back', order_items_path %>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/004_create_order_items.rb	Mon Mar 10 03:51:59 2008 +0900
@@ -0,0 +1,15 @@
+class CreateOrderItems < ActiveRecord::Migration
+  def self.up
+    create_table :order_items do |t|
+      t.references :order
+      t.references :product
+      t.integer :quantity
+
+      t.timestamps
+    end
+  end
+
+  def self.down
+    drop_table :order_items
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/order_items.yml	Mon Mar 10 03:51:59 2008 +0900
@@ -0,0 +1,11 @@
+# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
+
+moriq_carrot:
+  order: moriq
+  product: carrot
+  quantity: 2
+
+moriq_onion:
+  order: moriq
+  product: onion
+  quantity: 1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/functional/order_items_controller_test.rb	Mon Mar 10 03:51:59 2008 +0900
@@ -0,0 +1,45 @@
+require File.dirname(__FILE__) + '/../test_helper'
+
+class OrderItemsControllerTest < ActionController::TestCase
+  def test_should_get_index
+    get :index
+    assert_response :success
+    assert_not_nil assigns(:order_items)
+  end
+
+  def test_should_get_new
+    get :new
+    assert_response :success
+  end
+
+  def test_should_create_order_item
+    assert_difference('OrderItem.count') do
+      post :create, :order_item => { }
+    end
+
+    assert_redirected_to order_item_path(assigns(:order_item))
+  end
+
+  def test_should_show_order_item
+    get :show, :id => order_items(:moriq_carrot).id
+    assert_response :success
+  end
+
+  def test_should_get_edit
+    get :edit, :id => order_items(:moriq_carrot).id
+    assert_response :success
+  end
+
+  def test_should_update_order_item
+    put :update, :id => order_items(:moriq_carrot).id, :order_item => { }
+    assert_redirected_to order_item_path(assigns(:order_item))
+  end
+
+  def test_should_destroy_order_item
+    assert_difference('OrderItem.count', -1) do
+      delete :destroy, :id => order_items(:moriq_carrot).id
+    end
+
+    assert_redirected_to order_items_path
+  end
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/order_item_test.rb	Mon Mar 10 03:51:59 2008 +0900
@@ -0,0 +1,9 @@
+require File.dirname(__FILE__) + '/../test_helper'
+
+class OrderItemTest < ActiveSupport::TestCase
+  fixtures :all
+  # Replace this with your real tests.
+  def test_order
+    assert_equal(orders(:moriq), order_items(:moriq_carrot).order)
+  end
+end