Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
8a908451
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,发现更多精彩内容 >>
未验证
提交
8a908451
编写于
9月 20, 2018
作者:
S
Sean Griffin
提交者:
GitHub
9月 20, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #33925 from rafaelfranca/rm-fix-column_defaults
Make a deep copy of the _default_attributes in column_defaults
上级
0a829f7d
a0482d39
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
15 addition
and
1 deletion
+15
-1
activerecord/lib/active_record/model_schema.rb
activerecord/lib/active_record/model_schema.rb
+1
-1
activerecord/test/cases/attributes_test.rb
activerecord/test/cases/attributes_test.rb
+14
-0
未找到文件。
activerecord/lib/active_record/model_schema.rb
浏览文件 @
8a908451
...
...
@@ -375,7 +375,7 @@ def type_for_attribute(attr_name, &block)
# default values when instantiating the Active Record object for this table.
def
column_defaults
load_schema
@column_defaults
||=
_default_attributes
.
to_hash
@column_defaults
||=
_default_attributes
.
deep_dup
.
to_hash
end
def
_default_attributes
# :nodoc:
...
...
activerecord/test/cases/attributes_test.rb
浏览文件 @
8a908451
...
...
@@ -148,6 +148,20 @@ def deserialize(*)
assert_equal
2
,
klass
.
new
.
counter
end
test
"procs for default values are evaluated even after column_defaults is called"
do
klass
=
Class
.
new
(
OverloadedType
)
do
@@counter
=
0
attribute
:counter
,
:integer
,
default:
->
{
@@counter
+=
1
}
end
assert_equal
1
,
klass
.
new
.
counter
# column_defaults will increment the counter since the proc is called
klass
.
column_defaults
assert_equal
3
,
klass
.
new
.
counter
end
test
"procs are memoized before type casting"
do
klass
=
Class
.
new
(
OverloadedType
)
do
@@counter
=
0
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录