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 的顶部来禁用根属性包装。