我在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
}
}
}
}
为什么它包括一个额外的巢?
答案 0 :(得分:1)
因为您正在为用户关系传递序列化程序,而不是User实例本身。尝试通过将root false
置于UserFeedSerializer顶部来禁用根属性换行。