Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
ebf552bd
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,发现更多精彩内容 >>
提交
ebf552bd
编写于
6月 22, 2014
作者:
Y
Yves Senn
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #15849 from sgrif/sg-move-attributes
Move `attributes` to the `AttributeSet` object.
上级
1e122ff7
3e422e20
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
14 addition
and
3 deletion
+14
-3
activerecord/lib/active_record/attribute_methods.rb
activerecord/lib/active_record/attribute_methods.rb
+1
-3
activerecord/lib/active_record/attribute_set.rb
activerecord/lib/active_record/attribute_set.rb
+5
-0
activerecord/test/cases/attribute_set_test.rb
activerecord/test/cases/attribute_set_test.rb
+8
-0
未找到文件。
activerecord/lib/active_record/attribute_methods.rb
浏览文件 @
ebf552bd
...
...
@@ -271,9 +271,7 @@ def attribute_names
# person.attributes
# # => {"id"=>3, "created_at"=>Sun, 21 Oct 2012 04:53:04, "updated_at"=>Sun, 21 Oct 2012 04:53:04, "name"=>"Francesco", "age"=>22}
def
attributes
attribute_names
.
each_with_object
({})
{
|
name
,
attrs
|
attrs
[
name
]
=
read_attribute
(
name
)
}
@attributes
.
to_hash
end
# Returns an <tt>#inspect</tt>-like string for the value of the
...
...
activerecord/lib/active_record/attribute_set.rb
浏览文件 @
ebf552bd
...
...
@@ -10,6 +10,11 @@ def update(other)
attributes
.
update
(
other
.
attributes
)
end
def
to_hash
attributes
.
each_with_object
({})
{
|
(
k
,
v
),
h
|
h
[
k
]
=
v
.
value
}
end
alias_method
:to_h
,
:to_hash
def
freeze
@attributes
.
freeze
super
...
...
activerecord/test/cases/attribute_set_test.rb
浏览文件 @
ebf552bd
...
...
@@ -45,5 +45,13 @@ class AttributeSetTest < ActiveRecord::TestCase
assert
clone
.
frozen?
assert_not
attributes
.
frozen?
end
test
"to_hash returns a hash of the type cast values"
do
builder
=
AttributeSet
::
Builder
.
new
(
foo:
Type
::
Integer
.
new
,
bar:
Type
::
Float
.
new
)
attributes
=
builder
.
build_from_database
(
foo:
'1.1'
,
bar:
'2.2'
)
assert_equal
({
foo:
1
,
bar:
2.2
},
attributes
.
to_hash
)
assert_equal
({
foo:
1
,
bar:
2.2
},
attributes
.
to_h
)
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录