【问题标题】:ActiveModelSerializers isn't used for render jsonActiveModelSerializers 不用于渲染 json
【发布时间】:2015-09-02 16:03:25
【问题描述】:

我正在使用 Active Model Serializers 版本 0.9.3。当我调用render json: @collection 甚至是单个对象时,它使用默认的to_json 方法并返回完整对象。我没有尝试任何花哨的东西。我的控制器在目录app/controllers/v1/ 中,序列化程序在目录app/serializers/v1/ 中,我也在app/serializers/ 中尝试过它们。序列化程序类名称为UserSerializer,模型为User。任何可能发生这种情况的想法都会很棒。

【问题讨论】:

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


    【解决方案1】:

    如果是对象集合,渲染时指定each_serializer

      render(
        json: @collection,
        each_serializer: UserSerializer
      )
    

    如果是单个对象,则指定serializer

      render(
        json: @user,
        serializer: UserSerializer
      )
    

    【讨论】:

    • 不幸的是,我已经尝试过了,但它不起作用。我收到关于找不到模板的集合的错误。所以它正在搜索views/jbuilder文件。
    • 您是否使用命名空间名称指定了each_serializer
    • 为单个对象传递serializer: 有效,但集合仍在寻找与index 方法关联的视图。对于each_serializer,我通过V1::UserSerializer 没有运气
    • 如果单个对象使用serializer 选项,那么对象集合应该使用each_serializer 选项!
    • 我不明白为什么它仍在搜索应用程序以获取视图
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多