From ac32ce243a28682861e795110e6f3fd2db96f4b8 Mon Sep 17 00:00:00 2001 From: ricola Date: Sun, 6 Apr 2025 17:04:31 -0600 Subject: [PATCH] Allow delete vote --- views/votes_edit.erb | 3 +++ vote.rb | 14 +++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/views/votes_edit.erb b/views/votes_edit.erb index f6b4974..a54407c 100644 --- a/views/votes_edit.erb +++ b/views/votes_edit.erb @@ -56,3 +56,6 @@
+
+ +
diff --git a/vote.rb b/vote.rb index 713ca82..5d9180a 100644 --- a/vote.rb +++ b/vote.rb @@ -6,9 +6,9 @@ require 'securerandom' require_relative 'mj' class Vote < ActiveRecord::Base - has_many :candidates - has_many :ratings - has_many :organizers + has_many :candidates, dependent: :destroy + has_many :ratings, dependent: :destroy + has_many :organizers, dependent: :destroy has_many :users, through: :organizers validates :state, inclusion: { in: ["draft", "open", "closed"] } end @@ -207,6 +207,14 @@ post '/votes/:id/organizers' do redirect '/votes/' + @vote.secure_id end +post '/votes/:id/delete' do + redirect '/login' unless current_user + @vote = Vote.find_by(secure_id: params[:id]) + redirect '/votes/' + @vote.secure_id unless @vote.users.exists?(current_user.id) + @vote.destroy + redirect '/' +end + helpers do def current_user if session[:user_id]