在活动模型序列化程序中禁用root

时间:2016-09-06 18:08:37

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

我正在使用带有json适配器的活动模型序列化器(0.10.2),因为在两个序列化器中我需要元标记(元标记不包含在:属性适配器中),我还有更多的序列化器,我不想要root,是否可以禁用每个序列化程序的root?

是否可以在活动模型序列化程序v 0.10.2中使用:json adapter并禁用root?

2 个答案:

答案 0 :(得分:1)

使用:json适配器时,我找不到禁用根密钥的方法。但是,听起来你想让一些控制器方法返回元数据而其他控制器方法不返回元数据,所以你可以使用默认的适配器(属性)来处理没有元数据的方法,然后只需要声明:json适配器需要元数据的控制器方法。

所以,比如:

render json: articles, meta: articles_meta_method(articles), adapter: :json

当然,articles_meta_method必须在某处定义。

有一个使用元方法进行分页here

的示例

答案 1 :(得分:-1)

the documentation

  

始终使用根密钥呈现json响应。

     

可以通过以下方式覆盖根密钥:   在render调用中传递root选项。请参阅Rendering Guides

中的详细信息

这样的命令如下:

render json: @your_serializer, root: nil, adapter: :json

值得一试。