jad*_*sta 3 active-model-serializers ruby-on-rails-5
我正在尝试在 Rails 5 中构建一个仅 api 的应用程序。我正在使用活动模型序列化器(AMS)。在我的GET /users(UsersController#index) 端点上,我希望根 json 在用户的 json 数组之前有一个“users”关键字。
如果我设置一个带有ActiveModelSerializers.config.adapter = :json
值的初始值设定项,那么我将获得所需的行为。
但是, GET /users/1简单的用户 json 位于 key 下user。我想摆脱这个键(在本例中)并简单地将用户 json 回答为根 json。
问题是:如何在特定端点/响应/方法上定义 AMS 适配器?那可能吗?
我应该阅读手册:$
要覆盖“root”键,您必须root:在调用该render方法时提供一个参数。如果您在初始化程序上使用:json适配器,则将如下所示:
render json: @user, root: "admin"
然后这会生成一个像这样的 json:
{ "admin": { "id": 123, "email": "email@example.com" } }
如果需要,您还可以在 后面提供另一个键来root:设置适配器,如下所示:adapter: :json
因此,:attributes适配器没有根密钥。为了删除根密钥,您可以执行以下操作:
render json: @user, root: "admin", adapter: :attributes
| 归档时间: |
|
| 查看次数: |
2674 次 |
| 最近记录: |