Active Model Serializer ArraySerializer使用to_json显式实例化而没有根

时间:2015-12-29 15:11:24

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

我正在使用gem' active_model_serializers'版本0.9.3。为简单起见,我会尽量减少模型。我有一个带有属性id,title和CenterSerializer的Center模型,还有CentersCollectionSerializer。

现在我的问题是当我从CenterSerializer实例化以序列化单个中心并在instante上调用to_json时我得到了这个:

CenterSerializer.new(Center.first).to_json
"{\"center\":{\"title\":\"ExampleTitle\"}}"

这是我应该得到的因为我必须有根节点。当向特定中心的show动作发出curl请求时,会返回相同的响应。当我对获得json响应的中心的索引操作发出curl请求时,我得到了可接受的行为:

"{\"centers\":[
{\"title\":\"ExampleTitle\"},
{\"title\":\"ExampleTitle2\"},
{\"title\":\"ExampleTitle3\"}
}]"

但如果我这样做

CentersCollectionSerializer.new(Center.all).to_json

我得到同样的东西,但没有根节点:

    "[{\"title\":\"ExampleTitle\"},
    {\"title\":\"ExampleTitle2\"},
    {\"title\":\"ExampleTitle3\"}}]"

我做错了什么以及发生了什么,他在数组序列化器实例上显式调用to_json会给出没有根节点的响应,并且使用

对索引操作发出请求
  

respond_with @centers

(有响应者宝石)或

  

渲染json:@centers

获取根节点的响应?

0 个答案:

没有答案