Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
0605f45a
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,发现更多精彩内容 >>
提交
0605f45a
编写于
2月 27, 2018
作者:
R
Ryuta Kamizono
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #28270 from mmangino/dont_ignore_seralization_options
Don't accidentally lose includes in serialization
上级
f1878fa0
53789f55
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
12 addition
and
1 deletion
+12
-1
activemodel/CHANGELOG.md
activemodel/CHANGELOG.md
+4
-0
activemodel/lib/active_model/serialization.rb
activemodel/lib/active_model/serialization.rb
+1
-1
activemodel/test/cases/serialization_test.rb
activemodel/test/cases/serialization_test.rb
+7
-0
未找到文件。
activemodel/CHANGELOG.md
浏览文件 @
0605f45a
## Rails 6.0.0.alpha (Unreleased) ##
*
Do not lose all multiple
`:includes`
with options in serialization.
*Mike Mangino*
*
Rails 6 requires Ruby 2.4.1 or newer.
*Jeremy Daer*
...
...
activemodel/lib/active_model/serialization.rb
浏览文件 @
0605f45a
...
...
@@ -179,7 +179,7 @@ def serializable_add_includes(options = {}) #:nodoc:
return
unless
includes
=
options
[
:include
]
unless
includes
.
is_a?
(
Hash
)
includes
=
Hash
[
Array
(
includes
).
map
{
|
n
|
n
.
is_a?
(
Hash
)
?
n
.
to_a
.
first
:
[
n
,
{}
]
}]
includes
=
Hash
[
Array
(
includes
).
flat_map
{
|
n
|
n
.
is_a?
(
Hash
)
?
n
.
to_a
:
[[
n
,
{}]
]
}]
end
includes
.
each
do
|
association
,
opts
|
...
...
activemodel/test/cases/serialization_test.rb
浏览文件 @
0605f45a
...
...
@@ -174,4 +174,11 @@ def test_multiple_includes_with_options
{
"name"
=>
"Sue"
,
"email"
=>
"sue@example.com"
,
"gender"
=>
"female"
}]
}
assert_equal
expected
,
@user
.
serializable_hash
(
include:
[{
address:
{
only:
"street"
}
},
:friends
])
end
def
test_all_includes_with_options
expected
=
{
"email"
=>
"david@example.com"
,
"gender"
=>
"male"
,
"name"
=>
"David"
,
"address"
=>
{
"street"
=>
"123 Lane"
},
"friends"
=>
[{
"name"
=>
"Joe"
},
{
"name"
=>
"Sue"
}]
}
assert_equal
expected
,
@user
.
serializable_hash
(
include:
[
address:
{
only:
"street"
},
friends:
{
only:
"name"
}])
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录