Rails 4.2 Active Record Serializer JSON格式问题

时间:2015-02-26 21:33:26

标签: ruby-on-rails json activerecord active-model-serializers

我在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
            }
        }
    }
}

为什么它包括一个额外的巢?

1 个答案:

答案 0 :(得分:1)

因为您正在为用户关系传递序列化程序,而不是User实例本身。尝试通过将root false置于UserFeedSerializer顶部来禁用根属性换行。