diff --git a/app/models/concerns/mentionable.rb b/app/models/concerns/mentionable.rb
index 8cac47246db63cfd6c3bd9bedb38c8ff56f5bc76..ec9e0f1b1d0a6537b45bd9131577204198abf8da 100644
--- a/app/models/concerns/mentionable.rb
+++ b/app/models/concerns/mentionable.rb
@@ -14,14 +14,14 @@ module Mentionable
       attr = attr.to_s
       mentionable_attrs << [attr, options]
     end
+  end
 
+  included do
     # Accessor for attributes marked mentionable.
-    def mentionable_attrs
-      @mentionable_attrs ||= []
+    cattr_accessor :mentionable_attrs, instance_accessor: false do
+      []
     end
-  end
 
-  included do
     if self < Participable
       participant -> (user, ext) { all_references(user, extractor: ext) }
     end
diff --git a/app/models/concerns/note_on_diff.rb b/app/models/concerns/note_on_diff.rb
index 7b6a28ccf3cdfa92ae9e46f5bee0983a25f2f821..2785fbb21c9966a2028cf42199e4973c2a32edc7 100644
--- a/app/models/concerns/note_on_diff.rb
+++ b/app/models/concerns/note_on_diff.rb
@@ -4,9 +4,6 @@ module NoteOnDiff
   NUMBER_OF_TRUNCATED_DIFF_LINES = 16
 
   included do
-    attr_mentionable :note, pipeline: :note
-    participant :author
-
     delegate :blob, :highlighted_diff_lines, to: :diff_file, allow_nil: true
   end
 
diff --git a/app/models/concerns/participable.rb b/app/models/concerns/participable.rb
index 9822844357dde157dc616c078a81de29b30fed83..70740c76e43ecc01ffc3234c065ae9b0c7f543be 100644
--- a/app/models/concerns/participable.rb
+++ b/app/models/concerns/participable.rb
@@ -41,9 +41,12 @@ module Participable
     def participant(attr)
       participant_attrs << attr
     end
+  end
 
-    def participant_attrs
-      @participant_attrs ||= []
+  included do
+    # Accessor for participant attributes.
+    cattr_accessor :participant_attrs, instance_accessor: false do
+      []
     end
   end