Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
e7381d28
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,发现更多精彩内容 >>
未验证
提交
e7381d28
编写于
12月 29, 2016
作者:
R
Rafael Mendonça França
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove deprecated conditions parameter from #delete_all
上级
d31a6d13
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
12 addition
and
26 deletion
+12
-26
activerecord/CHANGELOG.md
activerecord/CHANGELOG.md
+1
-1
activerecord/lib/active_record/relation.rb
activerecord/lib/active_record/relation.rb
+11
-19
activerecord/test/cases/relations_test.rb
activerecord/test/cases/relations_test.rb
+0
-6
未找到文件。
activerecord/CHANGELOG.md
浏览文件 @
e7381d28
*
Remove deprecated conditions parameter from
`#destroy_all`
.
*
Remove deprecated conditions parameter from
`#destroy_all`
and
`#delete_all`
.
*Rafael Mendonça França*
...
...
activerecord/lib/active_record/relation.rb
浏览文件 @
e7381d28
...
...
@@ -495,7 +495,7 @@ def destroy(id)
#
# Post.limit(100).delete_all
# # => ActiveRecord::ActiveRecordError: delete_all doesn't support limit
def
delete_all
(
conditions
=
nil
)
def
delete_all
invalid_methods
=
INVALID_METHODS_FOR_DELETE_ALL
.
select
do
|
method
|
value
=
get_value
(
method
)
SINGLE_VALUE_METHODS
.
include?
(
method
)
?
value
:
value
.
any?
...
...
@@ -504,27 +504,19 @@ def delete_all(conditions = nil)
raise
ActiveRecordError
.
new
(
"delete_all doesn't support
#{
invalid_methods
.
join
(
', '
)
}
"
)
end
if
conditions
ActiveSupport
::
Deprecation
.
warn
(
<<-
MESSAGE
.
squish
)
Passing conditions to delete_all is deprecated and will be removed in Rails 5.1.
To achieve the same use where(conditions).delete_all.
MESSAGE
where
(
conditions
).
delete_all
else
stmt
=
Arel
::
DeleteManager
.
new
stmt
.
from
(
table
)
stmt
=
Arel
::
DeleteManager
.
new
stmt
.
from
(
table
)
if
has_join_values?
@klass
.
connection
.
join_to_delete
(
stmt
,
arel
,
arel_attribute
(
primary_key
))
else
stmt
.
wheres
=
arel
.
constraints
end
if
has_join_values?
@klass
.
connection
.
join_to_delete
(
stmt
,
arel
,
arel_attribute
(
primary_key
))
else
stmt
.
wheres
=
arel
.
constraints
end
affected
=
@klass
.
connection
.
delete
(
stmt
,
"SQL"
,
bound_attributes
)
affected
=
@klass
.
connection
.
delete
(
stmt
,
"SQL"
,
bound_attributes
)
reset
affected
end
reset
affected
end
# Deletes the row with a primary key matching the +id+ argument, using a
...
...
activerecord/test/cases/relations_test.rb
浏览文件 @
e7381d28
...
...
@@ -1011,12 +1011,6 @@ def test_delete_all
assert
!
davids
.
loaded?
end
def
test_delete_all_with_conditions_is_deprecated
assert_deprecated
do
assert_difference
(
"Author.count"
,
-
1
)
{
Author
.
delete_all
(
name:
"David"
)
}
end
end
def
test_delete_all_loaded
davids
=
Author
.
where
(
name:
"David"
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录