Ruby on rails 没有获取一个序列化程序的所有属性

Ruby on rails 没有获取一个序列化程序的所有属性,ruby-on-rails,active-model-serializers,Ruby On Rails,Active Model Serializers,我有用户(姓名:string,电子邮件:string,管理员id:integer)模型和管理员配置文件(id:integer,类型:string,地址:text,技能:string)模型 如果存在管理员id,则用户有一个管理员配置文件 这是序列化程序 class UserSerializer < ActiveModel::Serializer attributes :name, :email, :admin_id has_one :admin_profile, :if =>

我有
用户(姓名:string,电子邮件:string,管理员id:integer)
模型和
管理员配置文件(id:integer,类型:string,地址:text,技能:string)
模型

如果存在管理员id,则用户有一个管理员配置文件

这是序列化程序

class UserSerializer < ActiveModel::Serializer
  attributes :name, :email, :admin_id
  has_one :admin_profile, :if => :admin_id?
end
class UserSerializer:admin\u id?
结束

问题是,我仅在呈现用户时从api获取id和类型。如果用户是管理员,是否有办法在用户中包含所有管理员配置文件属性?

将我的评论作为答案,以供将来参考:

您可以使用
attributes:name、:email、:admin\u profile
来包括
admin\u profile
。如果
用户
没有
管理员配置文件
,JSON响应的
管理员配置文件
条目将保持为空

请注意,刚刚合并了一个新功能,这正是您所希望的:

has_one :admin_profile, if: :is_admin?

它在master中可用,很快将成为RC4。

您可以使用
属性:名称,:电子邮件,:admin\u profile
来包含
管理员配置文件。如果用户没有管理员配置文件,JSON响应的条目
admin\u profile
将保持为空。谢谢