Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
75fe7434
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
75fe7434
编写于
5月 10, 2013
作者:
B
Ben Woosley
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
DRY-up join dependency creation by extracting construct_join_depdency
上级
88219cc8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
5 addition
and
7 deletion
+5
-7
activerecord/lib/active_record/relation/finder_methods.rb
activerecord/lib/active_record/relation/finder_methods.rb
+5
-7
未找到文件。
activerecord/lib/active_record/relation/finder_methods.rb
浏览文件 @
75fe7434
...
@@ -160,7 +160,7 @@ def exists?(conditions = :none)
...
@@ -160,7 +160,7 @@ def exists?(conditions = :none)
conditions
=
conditions
.
id
if
Base
===
conditions
conditions
=
conditions
.
id
if
Base
===
conditions
return
false
if
!
conditions
return
false
if
!
conditions
join_dependency
=
construct_join_dependency
_for_association_find
join_dependency
=
construct_join_dependency
relation
=
construct_relation_for_association_find
(
join_dependency
)
relation
=
construct_relation_for_association_find
(
join_dependency
)
relation
=
relation
.
except
(
:select
,
:order
).
select
(
"1 AS one"
).
limit
(
1
)
relation
=
relation
.
except
(
:select
,
:order
).
select
(
"1 AS one"
).
limit
(
1
)
...
@@ -201,7 +201,7 @@ def raise_record_not_found_exception!(ids, result_size, expected_size) #:nodoc:
...
@@ -201,7 +201,7 @@ def raise_record_not_found_exception!(ids, result_size, expected_size) #:nodoc:
protected
protected
def
find_with_associations
def
find_with_associations
join_dependency
=
construct_join_dependency
_for_association_find
join_dependency
=
construct_join_dependency
relation
=
construct_relation_for_association_find
(
join_dependency
)
relation
=
construct_relation_for_association_find
(
join_dependency
)
rows
=
connection
.
select_all
(
relation
,
'SQL'
,
relation
.
bind_values
.
dup
)
rows
=
connection
.
select_all
(
relation
,
'SQL'
,
relation
.
bind_values
.
dup
)
join_dependency
.
instantiate
(
rows
)
join_dependency
.
instantiate
(
rows
)
...
@@ -209,15 +209,13 @@ def find_with_associations
...
@@ -209,15 +209,13 @@ def find_with_associations
[]
[]
end
end
def
construct_join_dependency
_for_association_find
def
construct_join_dependency
(
joins
=
[])
including
=
(
eager_load_values
+
includes_values
).
uniq
including
=
(
eager_load_values
+
includes_values
).
uniq
ActiveRecord
::
Associations
::
JoinDependency
.
new
(
@klass
,
including
,
[]
)
ActiveRecord
::
Associations
::
JoinDependency
.
new
(
@klass
,
including
,
joins
)
end
end
def
construct_relation_for_association_calculations
def
construct_relation_for_association_calculations
including
=
(
eager_load_values
+
includes_values
).
uniq
apply_join_dependency
(
self
,
construct_join_dependency
(
arel
.
froms
.
first
))
join_dependency
=
ActiveRecord
::
Associations
::
JoinDependency
.
new
(
@klass
,
including
,
arel
.
froms
.
first
)
apply_join_dependency
(
self
,
join_dependency
)
end
end
def
construct_relation_for_association_find
(
join_dependency
)
def
construct_relation_for_association_find
(
join_dependency
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录