2016-11-20 58 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