Clear up dependency destruction chain

Buckets destroy their bubbles, which destroy their thread entries, which destroy their threadables, which is how comments end up destroyed, and then rollups end up deleting their events
This commit is contained in:
Jose Farias
2024-10-23 14:51:12 -06:00
parent 3e5b902e76
commit ae497aae85
6 changed files with 17 additions and 5 deletions
+1 -1
View File
@@ -2,7 +2,7 @@ module Bubble::Commentable
extend ActiveSupport::Concern
included do
has_many :comments, dependent: :destroy
has_many :comments
scope :ordered_by_comments, -> { left_joins(:comments).group(:id).order("COUNT(comments.id) DESC") }
end
+1 -1
View File
@@ -2,7 +2,7 @@ module Bubble::Eventable
extend ActiveSupport::Concern
included do
has_many :events, dependent: :delete_all
has_many :events
after_create -> { track_event :created }
end
+1 -1
View File
@@ -2,7 +2,7 @@ module Threadable
extend ActiveSupport::Concern
included do
has_one :thread_entry, as: :threadable, dependent: :destroy
has_one :thread_entry, as: :threadable
after_create { create_thread_entry! bubble: bubble }
after_update { bubble.touch }
+1 -1
View File
@@ -3,5 +3,5 @@ class Rollup < ApplicationRecord
belongs_to :bubble
has_many :events, -> { chronologically }
has_many :events, -> { chronologically }, dependent: :delete_all
end
+1 -1
View File
@@ -1,7 +1,7 @@
class ThreadEntry < ApplicationRecord
belongs_to :bubble
delegated_type :threadable, types: %w[ Comment Rollup ]
delegated_type :threadable, types: %w[ Comment Rollup ], dependent: :destroy
scope :chronologically, -> { order created_at: :asc, id: :desc }
end
+12
View File
@@ -24,5 +24,17 @@ logo_5:
created_at: <%= 1.hour.ago %>
layout_1:
bubble: layout
threadable: layout_initial_activity (Rollup)
layout_2:
bubble: layout
threadable: layout_overflowing_david (Comment)
text_1:
bubble: text
threadable: text_initial_activity (Rollup)
shipping_1:
bubble: shipping
threadable: shipping_initial_activity (Rollup)