Use composite primary key for `PreviewCardsStatus` model (#28208)

th-new
Matt Jankowski 2023-12-07 09:49:05 -05:00 committed by GitHub
parent da3d8aff79
commit 3918dc68c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 2 additions and 6 deletions

View File

@ -9,9 +9,7 @@
# url :string # url :string
# #
class PreviewCardsStatus < ApplicationRecord class PreviewCardsStatus < ApplicationRecord
# Composite primary keys are not properly supported in Rails. However, self.primary_key = [:preview_card_id, :status_id]
# we shouldn't need this anyway...
self.primary_key = nil
belongs_to :preview_card belongs_to :preview_card
belongs_to :status belongs_to :status

View File

@ -82,8 +82,7 @@ class Status < ApplicationRecord
has_and_belongs_to_many :tags has_and_belongs_to_many :tags
# Because of a composite primary key, the `dependent` option cannot be used on this association has_one :preview_cards_status, inverse_of: :status, dependent: :delete
has_one :preview_cards_status, inverse_of: :status # rubocop:disable Rails/HasManyOrHasOneDependent
has_one :notification, as: :activity, dependent: :destroy has_one :notification, as: :activity, dependent: :destroy
has_one :status_stat, inverse_of: :status, dependent: nil has_one :status_stat, inverse_of: :status, dependent: nil
@ -146,7 +145,6 @@ class Status < ApplicationRecord
# The `prepend: true` option below ensures this runs before # The `prepend: true` option below ensures this runs before
# the `dependent: destroy` callbacks remove relevant records # the `dependent: destroy` callbacks remove relevant records
before_destroy :unlink_from_conversations!, prepend: true before_destroy :unlink_from_conversations!, prepend: true
before_destroy :reset_preview_card!
cache_associated :application, cache_associated :application,
:media_attachments, :media_attachments,