簡體   English   中英

ActiveModel序列化器的兩個級別屬性

[英]ActiveModel Serializers two level attributes

在我的rails項目中,我為用戶提供了一個串行器:

class UserSerializer < ActiveModel::Serializer
    attributes ...
    has_one :project
    has_many :sessions
end

一個用於會話:

class SessionSerializer < ActiveModel::Serializer
    attributes ...
    belongs_to :user
end

因此,如果我從任何控制器返回會話:

render json: session

我得到類似的東西:

{ "session": {
    "user: { ... }
    ...
}

但是用戶不包含該項目,因為我猜它太深了,那么我該如何包含它?

您可以配置AMS default_includes以進行更深層的嵌套

# config/initializers/active_model_serializer.rb
ActiveModel::Serializer.config.default_includes = '**'

或者,您可以嘗試提供include選項以render方法:

render json: session, include: ["user.project"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM