首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails:为多态关联设置特定的序列化程序

Rails:为多态关联设置特定的序列化程序
EN

Stack Overflow用户
提问于 2017-03-29 03:57:58
回答 1查看 2K关注 0票数 4

我试图覆盖多态关系的默认序列化程序。我有:

代码语言:javascript
复制
class NotificationListSerializer < ActiveModel::Serializer
  attributes :id, :title
  belongs_to :notifiable, polymorphic: true
end

如果notifiable是一个组织,则该组织将使用OrganizationSerializer序列化。如果notifiable是一个组,则该组将使用GroupSerializer序列化。这是完全合理的,但是如何根据类指定不同的序列化程序呢?

例如,如果notifiable是一个组织,我希望使用SparseOrganizationSerializer而不是OrganizationSerializer。我怎样才能做到这一点?

我很确定这是有文档记录的,但我很难跟踪和找到任何例子。

来自文档

多态关系 多态关系通过指定关系来序列化,就像任何其他关联一样。例如: 类PictureSerializer 可以通过重写serializer_for来指定序列化程序。有关多态关系的更多上下文,请参见每个适配器的测试。 重写关联序列化器查找 如果要为关联定义特定的序列化程序查找,则可以重写ActiveModel::Serializer.serializer_for方法以根据定义的条件返回序列化程序类。 类MySerializer

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-29 21:13:50

您可以使用belongs_to :notifiable &block选项来指定合适的序列化程序。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43084037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档