Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
e5203391
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,发现更多精彩内容 >>
提交
e5203391
编写于
6月 12, 2014
作者:
M
Matthew Draper
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #15630 from eileencodes/refactor-join-keys-on-add_constraints
begin refactoring add_constraints by moving join keys
上级
70b931f8
5823e429
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
20 addition
and
12 deletion
+20
-12
activerecord/lib/active_record/associations/association_scope.rb
...ecord/lib/active_record/associations/association_scope.rb
+3
-12
activerecord/lib/active_record/reflection.rb
activerecord/lib/active_record/reflection.rb
+17
-0
未找到文件。
activerecord/lib/active_record/associations/association_scope.rb
浏览文件 @
e5203391
...
...
@@ -105,18 +105,9 @@ def add_constraints(scope, owner, assoc_klass, refl, tracker)
chain
.
each_with_index
do
|
reflection
,
i
|
table
,
foreign_table
=
tables
.
shift
,
tables
.
first
if
reflection
.
source_macro
==
:belongs_to
if
reflection
.
polymorphic?
key
=
reflection
.
association_primary_key
(
assoc_klass
)
else
key
=
reflection
.
association_primary_key
end
foreign_key
=
reflection
.
foreign_key
else
key
=
reflection
.
foreign_key
foreign_key
=
reflection
.
active_record_primary_key
end
join_keys
=
reflection
.
join_keys
(
assoc_klass
)
key
=
join_keys
.
key
foreign_key
=
join_keys
.
foreign_key
if
reflection
==
chain
.
last
bind_val
=
bind
scope
,
table
.
table_name
,
key
.
to_s
,
owner
[
foreign_key
],
tracker
...
...
activerecord/lib/active_record/reflection.rb
浏览文件 @
e5203391
...
...
@@ -188,6 +188,23 @@ def ==(other_aggregation)
active_record
==
other_aggregation
.
active_record
end
JoinKeys
=
Struct
.
new
(
:key
,
:foreign_key
)
# :nodoc:
def
join_keys
(
assoc_klass
)
if
source_macro
==
:belongs_to
if
polymorphic?
reflection_key
=
association_primary_key
(
assoc_klass
)
else
reflection_key
=
association_primary_key
end
reflection_foreign_key
=
foreign_key
else
reflection_key
=
foreign_key
reflection_foreign_key
=
active_record_primary_key
end
JoinKeys
.
new
(
reflection_key
,
reflection_foreign_key
)
end
private
def
derive_class_name
name
.
to_s
.
camelize
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录