Rails 4.2 Active Record Serializer JSON 格式问题
Rails 4.2 Active Record Serializer JSON format issue
我在 rails 上有一个序列化器,里面有另一个嵌套的序列化器,就像这样
class FeedSerializer < ActiveModel::Serializer
attributes :id
has_one :user
def user
if object.anonymous
nil
else
UserFeedSerializer.new(object.user)
end
end
end
我预计 JSON 的响应会像
{
"feed": {
"id": 10
"user": {
"id": 10
}
}
}
但它却这样做了:
{
"feed": {
"id": 10
"user": {
"user_feed": {
"id": 10
}
}
}
}
为什么要加一个巢?
因为您传递的是用户关系的序列化程序,而不是用户实例本身。尝试通过将 root false
放在 UserFeedSerializer 的顶部来禁用根属性包装。
我在 rails 上有一个序列化器,里面有另一个嵌套的序列化器,就像这样
class FeedSerializer < ActiveModel::Serializer
attributes :id
has_one :user
def user
if object.anonymous
nil
else
UserFeedSerializer.new(object.user)
end
end
end
我预计 JSON 的响应会像
{
"feed": {
"id": 10
"user": {
"id": 10
}
}
}
但它却这样做了:
{
"feed": {
"id": 10
"user": {
"user_feed": {
"id": 10
}
}
}
}
为什么要加一个巢?
因为您传递的是用户关系的序列化程序,而不是用户实例本身。尝试通过将 root false
放在 UserFeedSerializer 的顶部来禁用根属性包装。