Gem [active_model_serializers] 一个诡异的问题,求教一下怎么解决

hanluner · 2016年12月20日 · 最后由 hanluner 回复于 2016年12月20日 · 2610 次阅读

用 active_model_serializers 做序列化

render json: { status: $conf[:ok], result: UserSerializer.new(user) }

虽然正常返回,但是日志输出:

[active_model_serializers] Rendered ActiveModel::Serializer::Null with Hash (3.57ms)
Completed 200 OK in 101ms (Views: 7.9ms | ActiveRecord: 5.8ms)

这句话虽然不影响结果,但是看着很不爽,关了好几次都没关掉。搜索一圈也没有好的答案。有遇到过的朋友吗?

[active_model_serializers] Rendered ActiveModel::Serializer::Null with Hash (3.57ms)

日志输出没问题啊,你返回结果就是一个 hash,找不到 serializer,所以就会使用 ActiveModel::Serializer::Null

#1 楼 @numbcoder 我已经是自定义 UserSerializer.new(user),不需要它来找我这个返回 hash。

#2 楼 @hanluner 你返回的结果是 { status: $conf[:ok], result: UserSerializer.new(user) } , AMS 在找不到 serializer 的情况下就会使用 ActiveModel::Serializer::Null

除非这样 render json: user, 那么就会自动使用 UserSerializer

#3 楼 @numbcoder 我理解你的意思了,那有没有办法关掉这种序列化?请教一下。因为它这种 null 的序列化也是占用时间的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号