【发布时间】:2014-12-30 21:50:33
【问题描述】:
我在 Rails 项目中设置了 active_model_serializers,并且可以成功地使用序列化器以这种方式显示 json:
render json: @user
但是,如果我将模型对象包含在更复杂的 json 响应中,gem 似乎无法自动使用序列化程序:
render json: { "success": true, "something": "xyz", user: @user }
我发现我可以执行以下操作来绕过它,尽管这样做很痛苦:
render json: { "success": true, "something": "xyz", user: UserSerializer.new(@user) }
此外,如上所示使用它似乎使其无法使用我在 ApplicationController 中指定为我的 default_serializer_options 的 root:false 选项。这意味着我必须尽可能地提出:
render json: { "success": true, "something": "xyz", user: UserSerializer.new(@user, root: false) }
有没有更好的方法来解决这个问题?似乎在每次渲染中都必须如此明确会削弱 AMS 的一些简单性/好处......
** 注意:这是 rails 4、ruby 2.0 和 active_model_serializers 0.8.0
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 active-model-serializers