2016-11-20 22 views
0

我正在尝试在rails 5中构建一个仅使用api的应用程序。我正在使用活动模型串行器(AMS)。 在我的GET /users(UsersController#index)端点上,我希望根json在用户的json数组之前有一个“users”关键字。每种方法设置活动模型串行器适配器

如果我设置了一个初始值为ActiveModelSerializers.config.adapter = :json 的值,那么我有所需的行为。

但是,然后,在GET /users/1简单的用户json属于密钥user。我想摆脱这个关键(在这种情况下),并简单地回答用户json作为根json。

问题是:如何在特定的端点/响应/方法上定义AMS适配器?那可能吗?

回答

0

我应该阅读说明书:$

要覆盖“根”键,你当你调用render方法提供root:说法。如果您使用的是一个初始化的:json适配器,这将是这样的:

render json: @user, root: "admin" 这将随后产生这样一个JSON:

{ “管理员”:{ “ID”:123, “电子邮件”:“[email protected]” }}

如果你愿意,你也可以提供root:陆续键设置适配器,就像这样:adapter: :json

因此,:attributes适配器没有根密钥。为了去除根密钥,你可以这样做: render json: @user, root: "admin", adapter: :attributes

的官方文档是herehere

+0

官方文档现在404 – CDub

+1

感谢注意到:)我他们更新到一个特定的发行版本,而不是主分支。 – jademcosta

相关问题