changeset 14: |
e280ef17cd5a |
parent 13: | 907a36cf5ba1 |
child 15: | 64acf98d15f4 |
author: |
moriq <moriq@moriq.com> |
date: |
Mon Mar 10 09:55:26 2008 +0900 (16 years ago) |
files: |
app/controllers/order_items_controller.rb config/routes.rb test/functional/order_items_controller_test.rb |
description: |
order_item resourceをsession order resourceに属すように変更する。 |
--- a/app/controllers/order_items_controller.rb Mon Mar 10 09:38:39 2008 +0900
+++ b/app/controllers/order_items_controller.rb Mon Mar 10 09:55:26 2008 +0900
@@ -1,8 +1,10 @@ class OrderItemsController < Application
class OrderItemsController < ApplicationController
+ before_filter :assign_session_order
+
# GET /order_items
# GET /order_items.xml
def index
- @order_items = OrderItem.find(:all)
+ @order_items = @order.items.find(:all)
respond_to do |format|
format.html # index.html.erb
@@ -13,7 +15,7 @@ class OrderItemsController < Application
# GET /order_items/1
# GET /order_items/1.xml
def show
- @order_item = OrderItem.find(params[:id])
+ @order_item = @order.items.find(params[:id])
respond_to do |format|
format.html # show.html.erb
@@ -24,7 +26,7 @@ class OrderItemsController < Application
# GET /order_items/new
# GET /order_items/new.xml
def new
- @order_item = OrderItem.new
+ @order_item = @order.items.new
respond_to do |format|
format.html # new.html.erb
@@ -34,13 +36,13 @@ class OrderItemsController < Application
# GET /order_items/1/edit
def edit
- @order_item = OrderItem.find(params[:id])
+ @order_item = @order.items.find(params[:id])
end
# POST /order_items
# POST /order_items.xml
def create
- @order_item = OrderItem.new(params[:order_item])
+ @order_item = @order.items.new(params[:order_item])
respond_to do |format|
if @order_item.save
@@ -57,7 +59,7 @@ class OrderItemsController < Application
# PUT /order_items/1
# PUT /order_items/1.xml
def update
- @order_item = OrderItem.find(params[:id])
+ @order_item = @order.items.find(params[:id])
respond_to do |format|
if @order_item.update_attributes(params[:order_item])
@@ -74,7 +76,7 @@ class OrderItemsController < Application
# DELETE /order_items/1
# DELETE /order_items/1.xml
def destroy
- @order_item = OrderItem.find(params[:id])
+ @order_item = @order.items.find(params[:id])
@order_item.destroy
respond_to do |format|
@@ -82,4 +84,13 @@ class OrderItemsController < Application
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/config/routes.rb Mon Mar 10 09:38:39 2008 +0900
+++ b/config/routes.rb Mon Mar 10 09:55:26 2008 +0900
@@ -1,5 +1,5 @@ ActionController::Routing::Routes.draw d
ActionController::Routing::Routes.draw do |map|
- map.resources :order_items
+ map.resources :items, :controller => 'order_items', :name_prefix => 'order_', :path_prefix => '/order'
map.resource :order
--- a/test/functional/order_items_controller_test.rb Mon Mar 10 09:38:39 2008 +0900
+++ b/test/functional/order_items_controller_test.rb Mon Mar 10 09:55:26 2008 +0900
@@ -2,17 +2,20 @@ require File.dirname(__FILE__) + '/../te
class OrderItemsControllerTest < ActionController::TestCase
def test_should_get_index
+ create_session_order
get :index
assert_response :success
assert_not_nil assigns(:order_items)
end
def test_should_get_new
+ create_session_order
get :new
assert_response :success
end
def test_should_create_order_item
+ create_session_order
assert_difference('OrderItem.count') do
post :create, :order_item => { }
end
@@ -21,25 +24,35 @@ class OrderItemsControllerTest < ActionC
end
def test_should_show_order_item
+ create_session_order
get :show, :id => order_items(:moriq_carrot).id
assert_response :success
end
def test_should_get_edit
+ create_session_order
get :edit, :id => order_items(:moriq_carrot).id
assert_response :success
end
def test_should_update_order_item
+ create_session_order
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
+ create_session_order
assert_difference('OrderItem.count', -1) do
delete :destroy, :id => order_items(:moriq_carrot).id
end
assert_redirected_to order_items_path
end
+
+ private
+ def create_session_order
+ order = orders(:moriq)
+ @request.session[:order_id] = order.id
+ end
end