diff --git a/app/controllers/spree/api/variants_controller_decorator.rb b/app/controllers/spree/api/variants_controller_decorator.rb index 476d3c1543..a225c4c401 100644 --- a/app/controllers/spree/api/variants_controller_decorator.rb +++ b/app/controllers/spree/api/variants_controller_decorator.rb @@ -1,6 +1,6 @@ Spree::Api::VariantsController.class_eval do def soft_delete - @variant = scope.find(params[:id]) + @variant = scope.find(params[:variant_id]) authorize! :delete, @variant @variant.deleted_at = Time.now() diff --git a/config/routes.rb b/config/routes.rb index 4ca341db37..63d313aa09 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -108,10 +108,10 @@ Spree::Core::Engine.routes.prepend do resources :products do get :managed, on: :collection - end - resources :variants do - delete :soft_delete + resources :variants do + delete :soft_delete + end end resources :orders do diff --git a/spec/controllers/spree/api/variants_controller_spec.rb b/spec/controllers/spree/api/variants_controller_spec.rb index 66806798fc..6177344b7c 100644 --- a/spec/controllers/spree/api/variants_controller_spec.rb +++ b/spec/controllers/spree/api/variants_controller_spec.rb @@ -43,7 +43,7 @@ module Spree product = create(:product) variant = product.master - spree_delete :soft_delete, {id: variant.to_param, product_id: product.to_param, format: :json} + spree_delete :soft_delete, {variant_id: variant.to_param, product_id: product.to_param, format: :json} response.status.should == 204 lambda { variant.reload }.should_not raise_error(ActiveRecord::RecordNotFound) variant.deleted_at.should_not be_nil