【问题标题】:Not getting all the attribute for has_one serializer没有获得 has_one 序列化程序的所有属性
【发布时间】:2016-01-14 15:17:53
【问题描述】:

我有User (name:string, email:string, admin_id:integer) 模型和admin_profile (id:integer, type:string, address:text, skills:string) 模型

如果 admin_id 存在,则用户 has_one admin_profile。

这是序列化程序

class UserSerializer < ActiveModel::Serializer
  attributes :name, :email, :admin_id
  has_one :admin_profile, :if => :admin_id?
end

问题是,当我呈现用户时,我只能从 api 获取 id 和 type。如果用户是管理员,有没有办法在用户中包含所有 admin_profile 属性?

【问题讨论】:

  • 您可以使用attributes :name, :email, :admin_profile 来包含admin_profile。如果用户没有 admin_profile,则 JSON 响应的条目 admin_profile 将保持为空
  • 成功了,谢谢

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


【解决方案1】:

让我的评论成为未来参考的答案:

您可以使用attributes :name, :email, :admin_profile 来包含admin_profile。如果User 没有admin_profile,则JSON 响应的条目admin_profile 将保持为空。

请注意,刚刚合并了一个新功能,它完全符合您的要求:

has_one :admin_profile, if: :is_admin?

master里面有,很快就会变成RC4了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-26
    • 2020-12-20
    • 1970-01-01
    • 2017-01-08
    • 2013-06-16
    • 2012-07-03
    • 1970-01-01
    • 2015-03-17
    相关资源
    最近更新 更多