【问题标题】:ActiveModel Serializers two level attributesActiveModel 序列化器两级属性
【发布时间】:2017-08-02 19:05:54
【问题描述】:

在我的 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: { ... }
    ...
}

但用户不包含该项目,因为我猜它太深了,所以我该如何包含它?

【问题讨论】:

    标签: ruby-on-rails active-model-serializers


    【解决方案1】:

    您可以配置default_includesAMS 以进行更深的嵌套

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

    或者您可以尝试为render 方法提供include 选项:

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

    【讨论】:

    • 太棒了!我正在寻找包含解决方案。
    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多