diff options
author | Rémy Coutable <remy@rymai.me> | 2017-07-11 13:33:27 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-07-11 13:33:27 +0000 |
commit | 07e2b20c64046e9ef1d29f80024a1f1db7d4284d (patch) | |
tree | cc9b7489250cb53dc9d28768b378aa9fe3fed7f6 | |
parent | df05405842cda2175255517fe806de97824c89ef (diff) | |
parent | 222a6b4680b19f578b42b32d908a1d3cb8e343f7 (diff) | |
download | gitlab-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.yml | 4 | ||||
-rw-r--r-- | lib/gitlab/url_builder.rb | 8 |
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)) |