Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
5193fe9d
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,发现更多精彩内容 >>
提交
5193fe9d
编写于
1月 07, 2010
作者:
L
Lawrence Pit
提交者:
Eloy Duran
1月 08, 2010
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Exclude unchanged records from the collection being considered for autosave. [#2578 state:resolved]
Signed-off-by:
N
Eloy Duran
<
eloy.de.enige@gmail.com
>
上级
10803514
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
7 addition
and
12 deletion
+7
-12
activerecord/lib/active_record/autosave_association.rb
activerecord/lib/active_record/autosave_association.rb
+3
-3
activerecord/test/cases/autosave_association_test.rb
activerecord/test/cases/autosave_association_test.rb
+4
-9
未找到文件。
activerecord/lib/active_record/autosave_association.rb
浏览文件 @
5193fe9d
...
...
@@ -224,10 +224,10 @@ def marked_for_destruction?
def
associated_records_to_validate_or_save
(
association
,
new_record
,
autosave
)
if
new_record
association
elsif
a
ssociation
.
loaded?
a
utosave
?
association
:
association
.
find_all
{
|
record
|
record
.
new_record
?
}
elsif
a
utosave
a
ssociation
.
target
.
find_all
{
|
record
|
record
.
new_record?
||
record
.
changed?
||
record
.
marked_for_destruction
?
}
else
a
utosave
?
association
.
target
:
a
ssociation
.
target
.
find_all
{
|
record
|
record
.
new_record?
}
association
.
target
.
find_all
{
|
record
|
record
.
new_record?
}
end
end
...
...
activerecord/test/cases/autosave_association_test.rb
浏览文件 @
5193fe9d
...
...
@@ -701,23 +701,18 @@ def save(*args)
define_method
(
"test_should_rollback_destructions_if_an_exception_occurred_while_saving_
#{
association_name
}
"
)
do
2
.
times
{
|
i
|
@pirate
.
send
(
association_name
).
create!
(
:name
=>
"
#{
association_name
}
_
#{
i
}
"
)
}
before
=
@pirate
.
send
(
association_name
).
map
{
|
c
|
c
}
before
=
@pirate
.
send
(
association_name
).
map
{
|
c
|
c
.
mark_for_destruction
;
c
}
# Stub the save method of the first child to destroy and the second to raise an exception
class
<<
before
.
first
def
save
(
*
args
)
super
destroy
end
end
# Stub the destroy method of the the second child to raise an exception
class
<<
before
.
last
def
save
(
*
args
)
def
destroy
(
*
args
)
super
raise
'Oh noes!'
end
end
assert_raise
(
RuntimeError
)
{
assert
!
@pirate
.
save
}
assert
before
.
first
.
frozen?
# the first child was indeed destroyed
assert_equal
before
,
@pirate
.
reload
.
send
(
association_name
)
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录