【问题标题】:Prevent to call serializer防止调用序列化程序
【发布时间】:2017-02-01 12:46:52
【问题描述】:

我创建了名为user serailizer的序列化程序

class UserSerializer < ActiveModel::Serializer
  attributes :id, :email, :display_name
end

随叫随到

render json: User.all, status: 200

这将返回

[{id:1, email: test@gmail.com, display_name: 'test'},{id:2, email: test1@gmail.com, display_name: 'test1'}]

而且我的用户表还有更多属性

这里我不想渲染序列化器属性,想要渲染用户表的所有属性而不改变序列化器 简而言之,我想防止在每个渲染 json 上调用序列化器,我想在需要时渲染序列化器属性>

我也试过

render json: User.all, serializer: nil, status: 200

但是没有运气

提前致谢

【问题讨论】:

  • 显示的错误是什么?
  • @BKSpureon 当我调用serializer: nil 时它没有显示任何错误,它仍在调用序列化程序

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


【解决方案1】:

我不明白你到底想做什么,为什么你有一个不想使用的 UserSerializer,为什么不制作 SpecialCaseUserSerializer,为什么要渲染每个用户和每个单个数据库列...但这可能是您想要的:

render json: User.all.to_json, status: :ok

如果这不符合您的要求,您需要分享更多信息,例如您使用的版本、您尝试过的内容、您收到的任何错误消息以及详细信息/示例你想做的是什么,而不是你正在做的事情是行不通的。

【讨论】:

    猜你喜欢
    • 2014-06-06
    • 1970-01-01
    • 2013-05-31
    • 2019-09-26
    • 2011-09-19
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多