--- a/.hgignore Mon Mar 10 03:51:59 2008 +0900
+++ b/.hgignore Mon Mar 10 09:38:39 2008 +0900
@@ -4,3 +4,4 @@ syntax: glob
*.sqlite3
schema.rb
nbproject
+arc
--- a/app/controllers/orders_controller.rb Mon Mar 10 03:51:59 2008 +0900
+++ b/app/controllers/orders_controller.rb Mon Mar 10 09:38:39 2008 +0900
@@ -1,19 +1,10 @@ class OrdersController < ApplicationCont
class OrdersController < ApplicationController
- # GET /orders
- # GET /orders.xml
- def index
- @orders = Order.find(:all)
+ before_filter :assign_session_order
- respond_to do |format|
- format.html # index.html.erb
- format.xml { render :xml => @orders }
- end
- end
-
- # GET /orders/1
- # GET /orders/1.xml
+ # GET /order
+ # GET /order.xml
def show
- @order = Order.find(params[:id])
+ # @order = Order.find(params[:id])
respond_to do |format|
format.html # show.html.erb
@@ -21,10 +12,10 @@ class OrdersController < ApplicationCont
end
end
- # GET /orders/new
- # GET /orders/new.xml
+ # GET /order/new
+ # GET /order/new.xml
def new
- @order = Order.new
+ # @order = Order.new
respond_to do |format|
format.html # new.html.erb
@@ -32,20 +23,20 @@ class OrdersController < ApplicationCont
end
end
- # GET /orders/1/edit
+ # GET /order/edit
def edit
- @order = Order.find(params[:id])
+ # @order = Order.find(params[:id])
end
- # POST /orders
- # POST /orders.xml
+ # POST /order
+ # POST /order.xml
def create
- @order = Order.new(params[:order])
+ # @order = Order.new(params[:order])
respond_to do |format|
if @order.save
flash[:notice] = 'Order was successfully created.'
- format.html { redirect_to(@order) }
+ format.html { redirect_to(order_path) }
format.xml { render :xml => @order, :status => :created, :location => @order }
else
format.html { render :action => "new" }
@@ -54,15 +45,15 @@ class OrdersController < ApplicationCont
end
end
- # PUT /orders/1
- # PUT /orders/1.xml
+ # PUT /order
+ # PUT /order.xml
def update
- @order = Order.find(params[:id])
+ # @order = Order.find(params[:id])
respond_to do |format|
if @order.update_attributes(params[:order])
flash[:notice] = 'Order was successfully updated.'
- format.html { redirect_to(@order) }
+ format.html { redirect_to(order_url) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
@@ -71,15 +62,24 @@ class OrdersController < ApplicationCont
end
end
- # DELETE /orders/1
- # DELETE /orders/1.xml
+ # DELETE /order
+ # DELETE /order.xml
def destroy
- @order = Order.find(params[:id])
+ # @order = Order.find(params[:id])
@order.destroy
respond_to do |format|
- format.html { redirect_to(orders_url) }
+ format.html { redirect_to(order_url) }
format.xml { head :ok }
end
end
+
+ private
+ def assign_session_order
+ unless session[:order_id].blank?
+ @order = Order.find(session[:order_id])
+ else
+ @order = Order.create
+ end
+ end
end
--- a/app/views/orders/edit.html.erb Mon Mar 10 03:51:59 2008 +0900
+++ b/app/views/orders/edit.html.erb Mon Mar 10 09:38:39 2008 +0900
@@ -2,7 +2,7 @@
<%= error_messages_for :order %>
-<% form_for(@order) do |f| %>
+<% form_for(@order, :url => order_path) do |f| %>
<p>
<b>Name</b><br />
<%= f.text_field :name %>
@@ -18,5 +18,5 @@
</p>
<% end %>
-<%= link_to 'Show', @order %> |
-<%= link_to 'Back', orders_path %>
+<%= link_to 'Show', order_path %> |
+<%= link_to 'Back', order_path %>
--- a/app/views/orders/new.html.erb Mon Mar 10 03:51:59 2008 +0900
+++ b/app/views/orders/new.html.erb Mon Mar 10 09:38:39 2008 +0900
@@ -2,7 +2,7 @@
<%= error_messages_for :order %>
-<% form_for(@order) do |f| %>
+<% form_for(@order, :url => order_path) do |f| %>
<p>
<b>Name</b><br />
<%= f.text_field :name %>
@@ -18,4 +18,4 @@
</p>
<% end %>
-<%= link_to 'Back', orders_path %>
+<%= link_to 'Back', order_path %>
--- a/app/views/orders/show.html.erb Mon Mar 10 03:51:59 2008 +0900
+++ b/app/views/orders/show.html.erb Mon Mar 10 09:38:39 2008 +0900
@@ -9,5 +9,5 @@
</p>
-<%= link_to 'Edit', edit_order_path(@order) %> |
-<%= link_to 'Back', orders_path %>
+<%= link_to 'Edit', edit_order_path %> |
+<%= link_to 'Back', order_path %>
--- a/config/routes.rb Mon Mar 10 03:51:59 2008 +0900
+++ b/config/routes.rb Mon Mar 10 09:38:39 2008 +0900
@@ -1,7 +1,7 @@ ActionController::Routing::Routes.draw d
ActionController::Routing::Routes.draw do |map|
map.resources :order_items
- map.resources :orders
+ map.resource :order
map.resources :products
--- a/test/functional/orders_controller_test.rb Mon Mar 10 03:51:59 2008 +0900
+++ b/test/functional/orders_controller_test.rb Mon Mar 10 09:38:39 2008 +0900
@@ -1,45 +1,59 @@ require File.dirname(__FILE__) + '/../te
require File.dirname(__FILE__) + '/../test_helper'
class OrdersControllerTest < ActionController::TestCase
- def test_should_get_index
+ def _test_should_get_index
+ create_session_order
get :index
assert_response :success
assert_not_nil assigns(:orders)
end
def test_should_get_new
+ create_session_order
get :new
assert_response :success
end
def test_should_create_order
- assert_difference('Order.count') do
+ create_session_order
+ # TODO: singleton resource はPOSTできないはず。
+ assert_difference('Order.count', 0) do
post :create, :order => { }
end
- assert_redirected_to order_path(assigns(:order))
+ assert_redirected_to order_path
end
def test_should_show_order
- get :show, :id => orders(:moriq).id
+ create_session_order
+ get :show
assert_response :success
end
def test_should_get_edit
- get :edit, :id => orders(:moriq).id
+ create_session_order
+ get :edit
assert_response :success
end
def test_should_update_order
- put :update, :id => orders(:moriq).id, :order => { }
- assert_redirected_to order_path(assigns(:order))
+ create_session_order
+ put :update, :order => { }
+ assert_redirected_to order_path
end
def test_should_destroy_order
+ create_session_order
assert_difference('Order.count', -1) do
- delete :destroy, :id => orders(:moriq).id
+ delete :destroy
end
- assert_redirected_to orders_path
+ assert_redirected_to order_path
end
+
+ private
+ def create_session_order
+ order = orders(:moriq)
+ @request.session[:order_id] = order.id
+ end
end