From 59c9051a2e7a1cf383716ff2d7aaa3beadfbe68f Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Mon, 3 Sep 2018 11:04:58 +0800 Subject: [PATCH] REFACTOR: Rescue error at the specific spot that is raising the error. --- app/controllers/categories_controller.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/controllers/categories_controller.rb b/app/controllers/categories_controller.rb index 3bef1bd62c..e3db162fba 100644 --- a/app/controllers/categories_controller.rb +++ b/app/controllers/categories_controller.rb @@ -118,10 +118,14 @@ class CategoriesController < ApplicationController def create guardian.ensure_can_create!(Category) - position = category_params.delete(:position) - @category = Category.create(category_params.merge(user: current_user)) + @category = + begin + Category.new(category_params.merge(user: current_user)) + rescue ArgumentError => e + return render json: { errors: [e.message] }, status: 422 + end if @category.save @category.move_to(position.to_i) if position @@ -134,8 +138,6 @@ class CategoriesController < ApplicationController else return render_json_error(@category) unless @category.save end - rescue ArgumentError => e - render json: { errors: [e.message] }, status: 422 end def update