Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
heptapod
heptapod
Commits
5b834bf2c034
Commit
e53169c9
authored
May 29, 2017
by
Douwe Maan
Browse files
Resolve N+1 query issue with discussions
parent
e657d9bf3d81
Changes
3
Hide whitespace changes
Inline
Side-by-side
app/models/concerns/noteable.rb
View file @
5b834bf2
...
...
@@ -43,7 +43,12 @@ def grouped_diff_discussions(*args)
end
def
resolvable_discussions
@resolvable_discussions
||=
discussion_notes
.
resolvable
.
discussions
(
self
)
@resolvable_discussions
||=
if
defined?
(
@discussions
)
@discussions
.
select
(
&
:resolvable?
)
else
discussion_notes
.
resolvable
.
discussions
(
self
)
end
end
def
discussions_resolvable?
...
...
app/models/discussion.rb
View file @
5b834bf2
...
...
@@ -21,7 +21,8 @@ def self.build(notes, context_noteable = nil)
end
def
self
.
build_collection
(
notes
,
context_noteable
=
nil
)
notes
.
group_by
{
|
n
|
n
.
discussion_id
(
context_noteable
)
}.
values
.
map
{
|
notes
|
build
(
notes
,
context_noteable
)
}
grouped_notes
=
notes
.
includes
(
:noteable
).
group_by
{
|
n
|
n
.
discussion_id
(
context_noteable
)
}
grouped_notes
.
values
.
map
{
|
notes
|
build
(
notes
,
context_noteable
)
}
end
# Returns an alphanumeric discussion ID based on `build_discussion_id`
...
...
changelogs/unreleased/dm-discussions-n-plus-1.yml
0 → 100644
View file @
5b834bf2
---
title
:
Resolve N+1 query issue with discussions
merge_request
:
author
:
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment