Commit 222a6b46 authored by Sean McGivern's avatar Sean McGivern

Don't reload ActiveRecord objects when building note URLs

When we build a note URL, and we have the note loaded already, there are two
cases:

1. The `noteable` is already loaded. In that case, this is faster as it doesn't
   build a new AR object from the query.
2. The `noteable` is not already loaded. In that case, this change is no worse
   than the previous code.
parent c17b1d5f
---
title: Improve issue rendering performance with lots of notes from other users
merge_request:
author:
...@@ -52,15 +52,13 @@ module Gitlab ...@@ -52,15 +52,13 @@ module Gitlab
commit_url(id: object.commit_id, anchor: dom_id(object)) commit_url(id: object.commit_id, anchor: dom_id(object))
elsif object.for_issue? elsif object.for_issue?
issue = Issue.find(object.noteable_id) issue_url(object.noteable, anchor: dom_id(object))
issue_url(issue, anchor: dom_id(object))
elsif object.for_merge_request? elsif object.for_merge_request?
merge_request = MergeRequest.find(object.noteable_id) merge_request_url(object.noteable, anchor: dom_id(object))
merge_request_url(merge_request, anchor: dom_id(object))
elsif object.for_snippet? elsif object.for_snippet?
snippet = Snippet.find(object.noteable_id) snippet = object.noteable
if snippet.is_a?(PersonalSnippet) if snippet.is_a?(PersonalSnippet)
snippet_url(snippet, anchor: dom_id(object)) snippet_url(snippet, anchor: dom_id(object))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment