From 06dce1f8b256c12096ddb2f81219e509e13dada3 Mon Sep 17 00:00:00 2001 From: Ken Johnson Date: Sun, 2 Jun 2013 13:08:56 -0400 Subject: [PATCH] I believe this has resolved the dependent destruction and we can close issue #18 --- app/controllers/admin_controller.rb | 4 +++- app/models/paid_time_off.rb | 2 +- app/models/user.rb | 8 ++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 0c27834..70a5f10 100755 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -34,7 +34,9 @@ class AdminController < ApplicationController def delete_user user = User.find_by_user_id(params[:admin_id]) if user && !(current_user.user_id == user.user_id) - user.delete + # Call destroy here so that all association records w/ user_id are destroyed as well + # Example user.retirement records would be destroyed + user.destroy message = true end respond_to do |format| diff --git a/app/models/paid_time_off.rb b/app/models/paid_time_off.rb index f248361..3628d22 100644 --- a/app/models/paid_time_off.rb +++ b/app/models/paid_time_off.rb @@ -1,7 +1,7 @@ class PaidTimeOff < ActiveRecord::Base attr_accessible :pto_earned, :pto_taken, :sick_days_earned, :sick_days_taken belongs_to :user - has_many :schedule, :foreign_key => :user_id, :primary_key => :user_id + has_many :schedule, :foreign_key => :user_id, :primary_key => :user_id, :dependent => :destroy def sick_days_remaining self.sick_days_earned - self.sick_days_taken diff --git a/app/models/user.rb b/app/models/user.rb index 9f8f60a..39787e1 100755 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -10,10 +10,10 @@ class User < ActiveRecord::Base validates_format_of :email, :with => /.+@.+\..+/i attr_accessor :skip_user_id_assign before_save :assign_user_id, :on => :create - has_one :retirement, :foreign_key => :user_id, :primary_key => :user_id - has_one :paid_time_off, :foreign_key => :user_id, :primary_key => :user_id - has_one :work_info, :foreign_key => :user_id, :primary_key => :user_id - has_many :performance, :foreign_key => :user_id, :primary_key => :user_id + has_one :retirement, :foreign_key => :user_id, :primary_key => :user_id, :dependent => :destroy + has_one :paid_time_off, :foreign_key => :user_id, :primary_key => :user_id, :dependent => :destroy + has_one :work_info, :foreign_key => :user_id, :primary_key => :user_id, :dependent => :destroy + has_many :performance, :foreign_key => :user_id, :primary_key => :user_id, :dependent => :destroy def full_name