Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
a95cbabc
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,发现更多精彩内容 >>
提交
a95cbabc
编写于
7月 02, 2013
作者:
R
Rafael Mendonça França
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #11254 from neerajdotname/delete-sql-be-gone
Removed support for deprecated `delete_sql` in associations.
上级
f98d47b1
8ef24638
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
15 addition
and
46 deletion
+15
-46
activerecord/CHANGELOG.md
activerecord/CHANGELOG.md
+4
-0
activerecord/lib/active_record/associations/builder/has_and_belongs_to_many.rb
...ve_record/associations/builder/has_and_belongs_to_many.rb
+1
-1
activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
...ecord/associations/has_and_belongs_to_many_association.rb
+10
-15
activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb
...associations/has_and_belongs_to_many_associations_test.rb
+0
-25
activerecord/test/models/project.rb
activerecord/test/models/project.rb
+0
-5
未找到文件。
activerecord/CHANGELOG.md
浏览文件 @
a95cbabc
*
Removed support for deprecated
`delete_sql`
in associations.
*Neeraj Singh*
*
Removed support for deprecated
`insert_sql`
in associations.
*Neeraj Singh*
...
...
activerecord/lib/active_record/associations/builder/has_and_belongs_to_many.rb
浏览文件 @
a95cbabc
...
...
@@ -5,7 +5,7 @@ def macro
end
def
valid_options
super
+
[
:join_table
,
:association_foreign_key
,
:delete_sql
]
super
+
[
:join_table
,
:association_foreign_key
]
end
def
build
...
...
activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
浏览文件 @
a95cbabc
...
...
@@ -35,10 +35,6 @@ def count_records
end
def
delete_records
(
records
,
method
)
if
sql
=
options
[
:delete_sql
]
records
=
load_target
if
records
==
:all
records
.
each
{
|
record
|
owner
.
class
.
connection
.
delete
(
interpolate
(
sql
,
record
))
}
else
relation
=
join_table
condition
=
relation
[
reflection
.
foreign_key
].
eq
(
owner
.
id
)
...
...
@@ -51,7 +47,6 @@ def delete_records(records, method)
owner
.
class
.
connection
.
delete
(
relation
.
where
(
condition
).
compile_delete
)
end
end
def
invertible_for?
(
record
)
false
...
...
activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb
浏览文件 @
a95cbabc
...
...
@@ -351,31 +351,6 @@ def test_deleting_array
assert_equal
0
,
david
.
projects
(
true
).
size
end
def
test_deleting_with_sql
david
=
Developer
.
find
(
1
)
active_record
=
Project
.
find
(
1
)
active_record
.
developers
.
reload
assert_equal
3
,
active_record
.
developers_by_sql
.
size
active_record
.
developers_by_sql
.
delete
(
david
)
assert_equal
2
,
active_record
.
developers_by_sql
(
true
).
size
end
def
test_deleting_array_with_sql
active_record
=
Project
.
find
(
1
)
active_record
.
developers
.
reload
assert_equal
3
,
active_record
.
developers_by_sql
.
size
active_record
.
developers_by_sql
.
delete
(
Developer
.
all
)
assert_equal
0
,
active_record
.
developers_by_sql
(
true
).
size
end
def
test_deleting_all_with_sql
project
=
Project
.
find
(
1
)
project
.
developers_by_sql
.
delete_all
assert_equal
0
,
project
.
developers_by_sql
.
size
end
def
test_deleting_all
david
=
Developer
.
find
(
1
)
david
.
projects
.
reload
...
...
activerecord/test/models/project.rb
浏览文件 @
a95cbabc
...
...
@@ -7,11 +7,6 @@ class Project < ActiveRecord::Base
has_and_belongs_to_many
:developers_named_david
,
->
{
where
(
"name = 'David'"
).
distinct
},
:class_name
=>
"Developer"
has_and_belongs_to_many
:developers_named_david_with_hash_conditions
,
->
{
where
(
:name
=>
'David'
).
distinct
},
:class_name
=>
"Developer"
has_and_belongs_to_many
:salaried_developers
,
->
{
where
"salary > 0"
},
:class_name
=>
"Developer"
ActiveSupport
::
Deprecation
.
silence
do
has_and_belongs_to_many
:developers_by_sql
,
:class_name
=>
"Developer"
,
:delete_sql
=>
proc
{
|
record
|
"DELETE FROM developers_projects WHERE project_id =
#{
id
}
AND developer_id =
#{
record
.
id
}
"
}
end
has_and_belongs_to_many
:developers_with_callbacks
,
:class_name
=>
"Developer"
,
:before_add
=>
Proc
.
new
{
|
o
,
r
|
o
.
developers_log
<<
"before_adding
#{
r
.
id
||
'<new>'
}
"
},
:after_add
=>
Proc
.
new
{
|
o
,
r
|
o
.
developers_log
<<
"after_adding
#{
r
.
id
||
'<new>'
}
"
},
:before_remove
=>
Proc
.
new
{
|
o
,
r
|
o
.
developers_log
<<
"before_removing
#{
r
.
id
}
"
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录