From 59cf3cb5cfaec0277e9e014242721cabc46d448d Mon Sep 17 00:00:00 2001 From: Nils Dittberner Date: Wed, 16 Nov 2016 11:45:50 +0100 Subject: [PATCH] Iteration E2. --- app/controllers/carts_controller.rb | 7 +++++++ app/controllers/line_items_controller.rb | 2 +- test/controllers/line_items_controller_test.rb | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/controllers/carts_controller.rb b/app/controllers/carts_controller.rb index 2b7fa3b..e028663 100644 --- a/app/controllers/carts_controller.rb +++ b/app/controllers/carts_controller.rb @@ -1,5 +1,7 @@ class CartsController < ApplicationController before_action :set_cart, only: [:show, :edit, :update, :destroy] + # QUESTION: How do we call this with call? + rescue_from ActiveRecord::RecordNotFound, with: :invalid_cart # GET /carts # GET /carts.json @@ -71,4 +73,9 @@ class CartsController < ApplicationController def cart_params params.fetch(:cart, {}) end + + def invalid_cart + logger.error "Attempt to access invalid cart #{params[:id]}" + redirect_to store_index_url, notice: 'Invalid cart' + end end diff --git a/app/controllers/line_items_controller.rb b/app/controllers/line_items_controller.rb index 0cfe8aa..3420581 100644 --- a/app/controllers/line_items_controller.rb +++ b/app/controllers/line_items_controller.rb @@ -74,6 +74,6 @@ class LineItemsController < ApplicationController # Never trust parameters from the scary internet, only allow the white list through. def line_item_params - params.require(:line_item).permit(:product_id, :cart_id) + params.require(:line_item).permit(:product_id) end end diff --git a/test/controllers/line_items_controller_test.rb b/test/controllers/line_items_controller_test.rb index 5103e92..d5f6e0b 100644 --- a/test/controllers/line_items_controller_test.rb +++ b/test/controllers/line_items_controller_test.rb @@ -37,7 +37,8 @@ class LineItemsControllerTest < ActionDispatch::IntegrationTest end test "should update line_item" do - patch line_item_url(@line_item), params: { line_item: { cart_id: @line_item.cart_id, product_id: @line_item.product_id } } + patch line_item_url(@line_item), + params: { line_item: { product_id: @line_item.product_id } } assert_redirected_to line_item_url(@line_item) end