From 397859ba8ae23a7670c7adbeec748b6ba94e5663 Mon Sep 17 00:00:00 2001 From: Jacques Distler Date: Sun, 28 Dec 2008 21:36:37 -0600 Subject: [PATCH] Clean Deletions Deleting a page removes all revisions of that page. Deleting a Web removes all pages (and all revisions thereof) and all wiki_files belonging to that Web. --- app/controllers/admin_controller.rb | 1 - app/models/page.rb | 2 +- app/models/web.rb | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index ccb3c43f..feadf9f4 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -112,7 +112,6 @@ class AdminController < ApplicationController def delete_web return unless is_post if wiki.authenticate(params['system_password_delete_web']) - @web.remove_pages(@web.select_all) wiki.delete_web(@web_name) flash[:info] = "Web \"#{@web_name}\" has been deleted." redirect_to :controller => 'wiki', :action => 'web_list' diff --git a/app/models/page.rb b/app/models/page.rb index 26d4223e..809015a0 100644 --- a/app/models/page.rb +++ b/app/models/page.rb @@ -1,6 +1,6 @@ class Page < ActiveRecord::Base belongs_to :web - has_many :revisions, :order => 'id' + has_many :revisions, :order => 'id', :dependent => :destroy has_many :wiki_references, :order => 'referenced_name' has_one :current_revision, :class_name => 'Revision', :order => 'id DESC' diff --git a/app/models/web.rb b/app/models/web.rb index 1e1d5585..4afe8e98 100644 --- a/app/models/web.rb +++ b/app/models/web.rb @@ -1,6 +1,6 @@ class Web < ActiveRecord::Base - has_many :pages - has_many :wiki_files + has_many :pages, :dependent => :destroy + has_many :wiki_files, :dependent => :destroy def wiki Wiki.new