summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-07-11 13:33:27 +0000
committerRémy Coutable <remy@rymai.me>2017-07-11 13:33:27 +0000
commit07e2b20c64046e9ef1d29f80024a1f1db7d4284d (patch)
treecc9b7489250cb53dc9d28768b378aa9fe3fed7f6
parentdf05405842cda2175255517fe806de97824c89ef (diff)
parent222a6b4680b19f578b42b32d908a1d3cb8e343f7 (diff)
downloadgitlab-ce-07e2b20c64046e9ef1d29f80024a1f1db7d4284d.tar.gz
Merge branch 'fix-n-plus-one-in-url-builder' into 'master'
Don't reload ActiveRecord objects when building note URLs Closes #34882 See merge request !12780
-rw-r--r--changelogs/unreleased/fix-n-plus-one-in-url-builder.yml4
-rw-r--r--lib/gitlab/url_builder.rb8
2 files changed, 7 insertions, 5 deletions
diff --git a/changelogs/unreleased/fix-n-plus-one-in-url-builder.yml b/changelogs/unreleased/fix-n-plus-one-in-url-builder.yml
new file mode 100644
index 00000000000..5781316cfd9
--- /dev/null
+++ b/changelogs/unreleased/fix-n-plus-one-in-url-builder.yml
@@ -0,0 +1,4 @@
+---
+title: Improve issue rendering performance with lots of notes from other users
+merge_request:
+author:
diff --git a/lib/gitlab/url_builder.rb b/lib/gitlab/url_builder.rb
index 35792d2d67f..824e2d7251f 100644
--- a/lib/gitlab/url_builder.rb
+++ b/lib/gitlab/url_builder.rb
@@ -52,15 +52,13 @@ module Gitlab
commit_url(id: object.commit_id, anchor: dom_id(object))
elsif object.for_issue?
- issue = Issue.find(object.noteable_id)
- issue_url(issue, anchor: dom_id(object))
+ issue_url(object.noteable, anchor: dom_id(object))
elsif object.for_merge_request?
- merge_request = MergeRequest.find(object.noteable_id)
- merge_request_url(merge_request, anchor: dom_id(object))
+ merge_request_url(object.noteable, anchor: dom_id(object))
elsif object.for_snippet?
- snippet = Snippet.find(object.noteable_id)
+ snippet = object.noteable
if snippet.is_a?(PersonalSnippet)
snippet_url(snippet, anchor: dom_id(object))