Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
1ecc3e83
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,发现更多精彩内容 >>
提交
1ecc3e83
编写于
7月 05, 2013
作者:
P
Paul Nikitochkin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#11288: Removed duplicated touching
if belongs to model with touch option on touch Closes #11288
上级
5ade0ddf
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
50 addition
and
2 deletion
+50
-2
activerecord/CHANGELOG.md
activerecord/CHANGELOG.md
+7
-0
activerecord/lib/active_record/associations/builder/belongs_to.rb
...cord/lib/active_record/associations/builder/belongs_to.rb
+1
-1
activerecord/test/cases/associations/belongs_to_associations_test.rb
...d/test/cases/associations/belongs_to_associations_test.rb
+42
-1
未找到文件。
activerecord/CHANGELOG.md
浏览文件 @
1ecc3e83
*
Remove extra select and update queries on save/touch/destroy ActiveRecord model
with belongs to reflection with option
`touch: true`
.
Fixes: #11288
*Paul Nikitochkin*
*
Remove deprecated
`ActiveRecord::Base.disable_implicit_join_references=`
.
*
Remove deprecated
`ActiveRecord::Base.disable_implicit_join_references=`
.
*Arun Agrawal*
*Arun Agrawal*
...
...
activerecord/lib/active_record/associations/builder/belongs_to.rb
浏览文件 @
1ecc3e83
...
@@ -92,7 +92,7 @@ def add_counter_cache_callbacks(reflection)
...
@@ -92,7 +92,7 @@ def add_counter_cache_callbacks(reflection)
end
end
def
self
.
touch_record
(
o
,
foreign_key
,
name
,
touch
)
# :nodoc:
def
self
.
touch_record
(
o
,
foreign_key
,
name
,
touch
)
# :nodoc:
old_foreign_id
=
o
.
attribute_was
(
foreign_key
)
old_foreign_id
=
o
.
changed_attributes
[
foreign_key
]
if
old_foreign_id
if
old_foreign_id
klass
=
o
.
association
(
name
).
klass
klass
=
o
.
association
(
name
).
klass
...
...
activerecord/test/cases/associations/belongs_to_associations_test.rb
浏览文件 @
1ecc3e83
require
"cases/helper"
require
'cases/helper'
require
'models/developer'
require
'models/developer'
require
'models/project'
require
'models/project'
require
'models/company'
require
'models/company'
...
@@ -14,6 +14,8 @@
...
@@ -14,6 +14,8 @@
require
'models/member'
require
'models/member'
require
'models/essay'
require
'models/essay'
require
'models/toy'
require
'models/toy'
require
'models/invoice'
require
'models/line_item'
class
BelongsToAssociationsTest
<
ActiveRecord
::
TestCase
class
BelongsToAssociationsTest
<
ActiveRecord
::
TestCase
fixtures
:accounts
,
:companies
,
:developers
,
:projects
,
:topics
,
fixtures
:accounts
,
:companies
,
:developers
,
:projects
,
:topics
,
...
@@ -324,6 +326,45 @@ def test_belongs_to_counter_after_save
...
@@ -324,6 +326,45 @@ def test_belongs_to_counter_after_save
assert_equal
1
,
Topic
.
find
(
topic
.
id
)[
:replies_count
]
assert_equal
1
,
Topic
.
find
(
topic
.
id
)[
:replies_count
]
end
end
def
test_belongs_to_with_touch_option_on_touch
line_item
=
LineItem
.
create!
Invoice
.
create!
(
line_items:
[
line_item
])
assert_queries
(
1
)
{
line_item
.
touch
}
end
def
test_belongs_to_with_touch_option_on_touch_and_removed_parent
line_item
=
LineItem
.
create!
Invoice
.
create!
(
line_items:
[
line_item
])
line_item
.
invoice
=
nil
assert_queries
(
2
)
{
line_item
.
touch
}
end
def
test_belongs_to_with_touch_option_on_update
line_item
=
LineItem
.
create!
Invoice
.
create!
(
line_items:
[
line_item
])
assert_queries
(
2
)
{
line_item
.
update
amount:
10
}
end
def
test_belongs_to_with_touch_option_on_destroy
line_item
=
LineItem
.
create!
Invoice
.
create!
(
line_items:
[
line_item
])
assert_queries
(
2
)
{
line_item
.
destroy
}
end
def
test_belongs_to_with_touch_option_on_touch_and_reassigned_parent
line_item
=
LineItem
.
create!
Invoice
.
create!
(
line_items:
[
line_item
])
line_item
.
invoice
=
Invoice
.
create!
assert_queries
(
3
)
{
line_item
.
touch
}
end
def
test_belongs_to_counter_after_update
def
test_belongs_to_counter_after_update
topic
=
Topic
.
create!
(
title:
"37s"
)
topic
=
Topic
.
create!
(
title:
"37s"
)
topic
.
replies
.
create!
(
title:
"re: 37s"
,
content:
"rails"
)
topic
.
replies
.
create!
(
title:
"re: 37s"
,
content:
"rails"
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录