【问题标题】:Disable root in active model serializers在活动模型序列化程序中禁用 root
【发布时间】:2017-01-14 06:45:31
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    所以,类似:

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

    当然,articles_meta_method 必须在某个地方定义。

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

    【讨论】:

      【解决方案2】:

      the documentation:

      json 响应始终使用根键呈现。

      根键可以通过以下方式覆盖: 在渲染调用中传递 root 选项。详情见Rendering Guides

      这样的命令:

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

      值得一试。

      【讨论】:

      • 这个不行,设置为nil时使用默认的序列化器名称
      猜你喜欢
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 1970-01-01
      • 2018-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多