Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
a09215ee
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,发现更多精彩内容 >>
提交
a09215ee
编写于
8月 18, 2009
作者:
E
Emilio Tagua
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
has_many nullify associations keys using ARel.
上级
a7178773
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
9 deletion
+9
-9
activerecord/lib/active_record/associations/has_many_association.rb
...rd/lib/active_record/associations/has_many_association.rb
+9
-9
未找到文件。
activerecord/lib/active_record/associations/has_many_association.rb
浏览文件 @
a09215ee
...
...
@@ -40,11 +40,11 @@ def count_records
# we are certain the current target is an empty array. This is a
# documented side-effect of the method that may avoid an extra SELECT.
@target
||=
[]
and
loaded
if
count
==
0
if
@reflection
.
options
[
:limit
]
count
=
[
@reflection
.
options
[
:limit
],
count
].
min
end
return
count
end
...
...
@@ -69,11 +69,11 @@ def delete_records(records)
when
:delete_all
@reflection
.
klass
.
delete
(
records
.
map
{
|
record
|
record
.
id
})
else
ids
=
quoted_record_ids
(
records
)
@reflection
.
klass
.
update_all
(
"
#{
@reflection
.
primary_key_name
}
= NULL"
,
"
#{
@reflection
.
primary_key_name
}
=
#{
owner_quoted_id
}
AND
#{
@reflection
.
klass
.
primary_key
}
IN (
#{
ids
}
)"
)
relation
=
arel_table
(
@reflection
.
table_name
)
relation
.
conditions
(
relation
[
@reflection
.
primary_key_name
].
eq
(
@owner
.
id
).
and
(
Arel
::
In
.
new
(
relation
[
@reflection
.
klass
.
primary_key
],
records
.
map
(
&
:id
)))
).
update
(
relation
[
@reflection
.
primary_key_name
]
=>
nil
)
@owner
.
class
.
update_counters
(
@owner
.
id
,
cached_counter_attribute_name
=>
-
records
.
size
)
if
has_cached_counter?
end
end
...
...
@@ -88,11 +88,11 @@ def construct_sql
@finder_sql
=
interpolate_sql
(
@reflection
.
options
[
:finder_sql
])
when
@reflection
.
options
[
:as
]
@finder_sql
=
@finder_sql
=
"
#{
@reflection
.
quoted_table_name
}
.
#{
@reflection
.
options
[
:as
]
}
_id =
#{
owner_quoted_id
}
AND "
+
"
#{
@reflection
.
quoted_table_name
}
.
#{
@reflection
.
options
[
:as
]
}
_type =
#{
@owner
.
class
.
quote_value
(
@owner
.
class
.
base_class
.
name
.
to_s
)
}
"
@finder_sql
<<
" AND (
#{
conditions
}
)"
if
conditions
else
@finder_sql
=
"
#{
@reflection
.
quoted_table_name
}
.
#{
@reflection
.
primary_key_name
}
=
#{
owner_quoted_id
}
"
@finder_sql
<<
" AND (
#{
conditions
}
)"
if
conditions
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录