summaryrefslogtreecommitdiff
path: root/app/models/note.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/note.rb')
-rw-r--r--app/models/note.rb36
1 files changed, 1 insertions, 35 deletions
diff --git a/app/models/note.rb b/app/models/note.rb
index c4c2ab8e67d..517d7985b8c 100644
--- a/app/models/note.rb
+++ b/app/models/note.rb
@@ -15,7 +15,6 @@ class Note < ActiveRecord::Base
include IgnorableColumn
include Editable
include Gitlab::SQL::Pattern
- include ThrottledTouch
module SpecialRole
FIRST_TIME_CONTRIBUTOR = :first_time_contributor
@@ -56,7 +55,7 @@ class Note < ActiveRecord::Base
participant :author
belongs_to :project
- belongs_to :noteable, polymorphic: true # rubocop:disable Cop/PolymorphicAssociations
+ belongs_to :noteable, polymorphic: true, touch: true # rubocop:disable Cop/PolymorphicAssociations
belongs_to :author, class_name: "User"
belongs_to :updated_by, class_name: "User"
belongs_to :last_edited_by, class_name: 'User'
@@ -119,7 +118,6 @@ class Note < ActiveRecord::Base
before_validation :set_discussion_id, on: :create
after_save :keep_around_commit, if: :for_project_noteable?
after_save :expire_etag_cache
- after_save :touch_noteable
after_destroy :expire_etag_cache
class << self
@@ -371,38 +369,6 @@ class Note < ActiveRecord::Base
Gitlab::EtagCaching::Store.new.touch(key)
end
- def touch(*args)
- # We're not using an explicit transaction here because this would in all
- # cases result in all future queries going to the primary, even if no writes
- # are performed.
- #
- # We touch the noteable first so its SELECT query can run before our writes,
- # ensuring it runs on a secondary (if no prior write took place).
- touch_noteable
- super
- end
-
- # By default Rails will issue an "SELECT *" for the relation, which is
- # overkill for just updating the timestamps. To work around this we manually
- # touch the data so we can SELECT only the columns we need.
- def touch_noteable
- # Commits are not stored in the DB so we can't touch them.
- return if for_commit?
-
- assoc = association(:noteable)
-
- noteable_object =
- if assoc.loaded?
- noteable
- else
- # If the object is not loaded (e.g. when notes are loaded async) we
- # _only_ want the data we actually need.
- assoc.scope.select(:id, :updated_at).take
- end
-
- noteable_object&.touch
- end
-
def banzai_render_context(field)
super.merge(noteable: noteable)
end