# HG changeset patch # User moriq # Date 1205110526 -32400 # Node ID e280ef17cd5ae40aa34aae400a06c0511ef5f5fc # Parent 907a36cf5ba14acb5e98cd144b121081f9eb7ba5 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