我正在使用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
获取根节点的响应?