From e099f5c0578c908727041c4ff4a9b1fe6e11f994 Mon Sep 17 00:00:00 2001 From: Xuanhuy218972 Date: Mon, 1 Dec 2025 17:48:01 +0700 Subject: [PATCH 1/4] Add destroy method for categories --- app/controllers/categories_controller.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/controllers/categories_controller.rb b/app/controllers/categories_controller.rb index 30dc1aa..1a09add 100644 --- a/app/controllers/categories_controller.rb +++ b/app/controllers/categories_controller.rb @@ -32,6 +32,20 @@ def create [[], 302, { 'location' => location }] end + def destroy + return require_authentication unless current_user + + return category_not_found unless find_category + category_name = @category.name + if @category.destroy + request.session['flash'] = "Category '#{category_name}' deleted" + else + request.session['flash'] = "Failed to delete" + end + + [[], 302, { 'location' => '/categories' }] + end + private def find_category From 8580200b182a01985d6e553575ad6c7bfae44d32 Mon Sep 17 00:00:00 2001 From: Xuanhuy218972 Date: Mon, 1 Dec 2025 17:49:48 +0700 Subject: [PATCH 2/4] Add delete route for categories --- config.ru | 1 + 1 file changed, 1 insertion(+) diff --git a/config.ru b/config.ru index f24c92b..1f820c3 100644 --- a/config.ru +++ b/config.ru @@ -31,6 +31,7 @@ use Frack::Router do get '/categories/new' => 'categories#new' post '/categories' => 'categories#create' get '/categories/show' => 'categories#show' + delete '/categories' => 'categories#destroy' get '/products' => 'products#index' get '/products/new' => 'products#new' post '/products' => 'products#create' From f8895e2b95142e67211136d48ff21d2ec7fde6f4 Mon Sep 17 00:00:00 2001 From: Xuanhuy218972 Date: Mon, 1 Dec 2025 18:00:35 +0700 Subject: [PATCH 3/4] Add bootstrap for delete check --- app/views/categories/index.html.erb | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/app/views/categories/index.html.erb b/app/views/categories/index.html.erb index fb952c8..f09f92d 100644 --- a/app/views/categories/index.html.erb +++ b/app/views/categories/index.html.erb @@ -16,12 +16,46 @@ <%= category.name %> + +
+ + + +
<% end %> + From 7093239c65f5c3600f57f35ae61f95a5c0451cba Mon Sep 17 00:00:00 2001 From: Xuanhuy218972 Date: Mon, 1 Dec 2025 18:01:22 +0700 Subject: [PATCH 4/4] Fix error by rubocop --- app/controllers/categories_controller.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/controllers/categories_controller.rb b/app/controllers/categories_controller.rb index 1a09add..8f61c8c 100644 --- a/app/controllers/categories_controller.rb +++ b/app/controllers/categories_controller.rb @@ -36,12 +36,13 @@ def destroy return require_authentication unless current_user return category_not_found unless find_category + category_name = @category.name - if @category.destroy - request.session['flash'] = "Category '#{category_name}' deleted" - else - request.session['flash'] = "Failed to delete" - end + request.session['flash'] = if @category.destroy + "Category '#{category_name}' deleted" + else + 'Failed to delete' + end [[], 302, { 'location' => '/categories' }] end