]> source.dussan.org Git - redmine.git/commitdiff
Cache the result of `Journal#attachments` (#39847).
authorGo MAEDA <maeda@farend.jp>
Sun, 31 Dec 2023 02:02:31 +0000 (02:02 +0000)
committerGo MAEDA <maeda@farend.jp>
Sun, 31 Dec 2023 02:02:31 +0000 (02:02 +0000)
Patch by Go MAEDA (@maeda).

git-svn-id: https://svn.redmine.org/redmine/trunk@22581 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/journal.rb

index cc5611754902279d03ccef0c609c46a04afd724f..c19a63816f0ad2b831f8afccd71a33fc5c0a24dc 100644 (file)
@@ -142,8 +142,10 @@ class Journal < ActiveRecord::Base
   end
 
   def attachments
-    ids = details.select {|d| d.property == 'attachment' && d.value.present?}.map(&:prop_key)
-    Attachment.where(id: ids).sort_by {|a| ids.index(a.id.to_s)}
+    @attachments ||= begin
+      ids = details.select {|d| d.property == 'attachment' && d.value.present?}.map(&:prop_key)
+      ids.empty? ? [] : Attachment.where(id: ids).sort_by {|a| ids.index(a.id.to_s)}
+    end
   end
 
   def visible?(*args)