Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
b376e5c8
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b376e5c8
编写于
9月 12, 2017
作者:
M
micael.bergeron
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix another N+1 query for label priorities
added a QueryRecorder for IssuesController#index.json
上级
53e632cb
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
19 addition
and
3 deletion
+19
-3
app/controllers/boards/issues_controller.rb
app/controllers/boards/issues_controller.rb
+2
-2
app/models/label.rb
app/models/label.rb
+6
-1
spec/controllers/boards/issues_controller_spec.rb
spec/controllers/boards/issues_controller_spec.rb
+11
-0
未找到文件。
app/controllers/boards/issues_controller.rb
浏览文件 @
b376e5c8
...
...
@@ -12,10 +12,10 @@ module Boards
issues
=
issues
.
page
(
params
[
:page
]).
per
(
params
[
:per
]
||
20
)
make_sure_position_is_set
(
issues
)
issues
=
issues
.
preload
(
:project
,
:labels
,
:milestone
,
:assignees
,
:notes
=>
[
:award_emoji
,
:author
]
labels:
[
:priorities
],
notes:
[
:award_emoji
,
:author
]
)
render
json:
{
...
...
app/models/label.rb
浏览文件 @
b376e5c8
...
...
@@ -127,7 +127,12 @@ class Label < ActiveRecord::Base
end
def
priority
(
project
)
priorities
.
find_by
(
project:
project
).
try
(
:priority
)
priority
=
if
priorities
.
loaded?
priorities
.
first
{
|
p
|
p
.
project
==
project
}
else
priorities
.
find_by
(
project:
project
)
end
priority
.
try
(
:priority
)
end
def
template?
...
...
spec/controllers/boards/issues_controller_spec.rb
浏览文件 @
b376e5c8
...
...
@@ -45,6 +45,17 @@ describe Boards::IssuesController do
expect
(
parsed_response
.
length
).
to
eq
2
expect
(
development
.
issues
.
map
(
&
:relative_position
)).
not_to
include
(
nil
)
end
it
'avoids N+1 database queries'
do
create
(
:labeled_issue
,
project:
project
,
labels:
[
development
])
control_count
=
ActiveRecord
::
QueryRecorder
.
new
{
list_issues
(
user:
user
,
board:
board
,
list:
list2
)
}.
count
# 25 issues is bigger than the page size
# the relative position will ignore the `#make_sure_position_set` queries
create_list
(
:labeled_issue
,
25
,
project:
project
,
labels:
[
development
],
assignees:
[
johndoe
],
relative_position:
1
)
expect
{
list_issues
(
user:
user
,
board:
board
,
list:
list2
)
}.
not_to
exceed_query_limit
(
control_count
)
end
end
context
'with invalid list id'
do
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录