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
将保持为空。谢谢