Use composite primary key for `PreviewCardsStatus` model (#28208)
parent
da3d8aff79
commit
3918dc68c7
|
@ -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
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue