Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
1712d900
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,体验更适合开发者的 AI 搜索 >>
提交
1712d900
编写于
7月 12, 2011
作者:
J
Jon Leighton
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix exception if old and new targets are both nil. Fixes #1471.
上级
5c8be9eb
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
15 addition
and
2 deletion
+15
-2
activerecord/lib/active_record/associations/belongs_to_association.rb
.../lib/active_record/associations/belongs_to_association.rb
+1
-1
activerecord/test/cases/associations/belongs_to_associations_test.rb
...d/test/cases/associations/belongs_to_associations_test.rb
+9
-0
activerecord/test/models/comment.rb
activerecord/test/models/comment.rb
+4
-1
activerecord/test/schema/schema.rb
activerecord/test/schema/schema.rb
+1
-0
未找到文件。
activerecord/lib/active_record/associations/belongs_to_association.rb
浏览文件 @
1712d900
...
...
@@ -37,7 +37,7 @@ def update_counters(record)
# Checks whether record is different to the current target, without loading it
def
different_target?
(
record
)
record
.
nil?
&&
owner
[
reflection
.
foreign_key
]
||
record
.
id
!=
owner
[
reflection
.
foreign_key
]
record
&&
record
.
id
!=
owner
[
reflection
.
foreign_key
]
end
def
replace_keys
(
record
)
...
...
activerecord/test/cases/associations/belongs_to_associations_test.rb
浏览文件 @
1712d900
...
...
@@ -681,4 +681,13 @@ def test_should_set_foreign_key_on_create_association!
firm
=
client
.
create_firm!
:name
=>
"baa"
assert_equal
firm
.
id
,
client
.
client_of
end
def
test_self_referential_belongs_to_with_counter_cache_assigning_nil
comment
=
Comment
.
create!
:post
=>
posts
(
:thinking
),
:body
=>
"fuu"
comment
.
parent
=
nil
comment
.
save!
assert_equal
nil
,
comment
.
reload
.
parent
assert_equal
0
,
comments
(
:greetings
).
reload
.
children_count
end
end
activerecord/test/models/comment.rb
浏览文件 @
1712d900
...
...
@@ -7,10 +7,13 @@ class Comment < ActiveRecord::Base
:joins
=>
:post
,
:conditions
=>
{
"posts.author_id"
=>
1
}
scope
:created
belongs_to
:post
,
:counter_cache
=>
true
has_many
:ratings
has_many
:children
,
:class_name
=>
'Comment'
,
:foreign_key
=>
:parent_id
belongs_to
:parent
,
:class_name
=>
'Comment'
,
:counter_cache
=>
:children_count
def
self
.
what_are_you
'a comment...'
end
...
...
activerecord/test/schema/schema.rb
浏览文件 @
1712d900
...
...
@@ -155,6 +155,7 @@ def create_table(*args, &block)
end
t
.
string
:type
t
.
integer
:taggings_count
,
:default
=>
0
t
.
integer
:children_count
,
:default
=>
0
end
create_table
:companies
,
:force
=>
true
do
|
t
|
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录