mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-30 10:58:31 -05:00
FIX: destroy CategoryGroup when Category or Group is destroyed
This commit is contained in:
parent
5c244c6f8f
commit
bf679f1626
3 changed files with 15 additions and 2 deletions
|
@ -19,7 +19,7 @@ class Category < ActiveRecord::Base
|
|||
has_many :category_featured_users
|
||||
has_many :featured_users, through: :category_featured_users, source: :user
|
||||
|
||||
has_many :category_groups
|
||||
has_many :category_groups, dependent: :destroy
|
||||
has_many :groups, through: :category_groups
|
||||
|
||||
validates :user_id, presence: true
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
class Group < ActiveRecord::Base
|
||||
include HasCustomFields
|
||||
|
||||
has_many :category_groups
|
||||
has_many :category_groups, dependent: :destroy
|
||||
has_many :group_users, dependent: :destroy
|
||||
|
||||
has_many :categories, through: :category_groups
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
class RemoveCategoryGroupsOrphanedByRemovingCategoryOrGroup < ActiveRecord::Migration
|
||||
def up
|
||||
execute "DELETE FROM category_groups
|
||||
WHERE group_id NOT IN (
|
||||
SELECT groups.id FROM groups)
|
||||
OR category_id NOT IN (
|
||||
SELECT categories.id FROM categories)"
|
||||
end
|
||||
|
||||
def down
|
||||
raise ActiveRecord::IrreversibleMigration
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue