Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
9b6926d3
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,发现更多精彩内容 >>
提交
9b6926d3
编写于
4月 22, 2013
作者:
C
Carlos Antonio da Silva
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #10292 from matthewrobertson/fix-update-counter-cache-on-push
Update counter cache when pushing into association
上级
8758c6c6
1e27f1c5
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
22 addition
and
3 deletion
+22
-3
activerecord/CHANGELOG.md
activerecord/CHANGELOG.md
+9
-0
activerecord/lib/active_record/associations/builder/belongs_to.rb
...cord/lib/active_record/associations/builder/belongs_to.rb
+4
-3
activerecord/test/cases/associations/has_many_associations_test.rb
...ord/test/cases/associations/has_many_associations_test.rb
+9
-0
未找到文件。
activerecord/CHANGELOG.md
浏览文件 @
9b6926d3
## Rails 4.0.0 (unreleased) ##
*
Fix for a regression bug in which counter cache columns were not being updated
when record was pushed into a has_many association. For example:
Post.first.comments << Comment.create
Fixes #3891.
*Matthew Robertson*
*
If a model was instantiated from the database using
`select`
,
`respond_to?`
returns false for non-selected attributes. For example:
...
...
activerecord/lib/active_record/associations/builder/belongs_to.rb
浏览文件 @
9b6926d3
...
...
@@ -25,9 +25,10 @@ def add_counter_cache_callbacks(reflection)
mixin
.
class_eval
<<-
CODE
,
__FILE__
,
__LINE__
+
1
def belongs_to_counter_cache_after_create_for_
#{
name
}
record =
#{
name
}
record.class.increment_counter(:
#{
cache_column
}
, record.id) unless record.nil?
@_after_create_counter_called = true
if record =
#{
name
}
record.class.increment_counter(:
#{
cache_column
}
, record.id)
@_after_create_counter_called = true
end
end
def belongs_to_counter_cache_before_destroy_for_
#{
name
}
...
...
activerecord/test/cases/associations/has_many_associations_test.rb
浏览文件 @
9b6926d3
...
...
@@ -755,6 +755,15 @@ def test_deleting_updates_counter_cache
assert_equal
topic
.
replies
.
to_a
.
size
,
topic
.
replies_count
end
def
test_pushing_association_updates_counter_cache
topic
=
Topic
.
order
(
"id ASC"
).
first
reply
=
Reply
.
create!
assert_difference
"topic.reload.replies_count"
,
1
do
topic
.
replies
<<
reply
end
end
def
test_deleting_updates_counter_cache_without_dependent_option
post
=
posts
(
:welcome
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录