ActiveModel :: Serializers和Ember Data - 正确建模我的序列化器以与Ember Data一起使用

时间:2014-07-12 03:13:00

标签: ember.js ember-data active-model-serializers

在我的应用中,发布了帖子has_many评论和评论belongs_to帖子(通过序列化工具中的has_one关系建模)。

由于每当我尝试在序列化程序中对这两种关系建模时都会收到Stack Level Too Deep错误消息,我想知道是否应保留has_many关联或has_one关联。

我还有一个初始化程序,它嵌入:id并对数据进行侧载。

感谢您的帮助。我发誓,我发誓!

1 个答案:

答案 0 :(得分:0)

对于这些关系,您的序列化程序应如下所示:

class PostSerializer < ActiveModel::Serializer
  embed :ids

  attributes :id # add other attributes here

  has_many :comments
end

class CommentSerializer < ActiveModel::Serializer
  embed :ids

  attributes :id # add other attributes here

  has_one :post
end

如果您的堆栈级别错误太深,则很可能是因为没有嵌入ID。如果没有嵌入id,它会尝试在帖子中嵌入注释,并且对于每个注释,再次嵌入帖子,然后再次嵌入注释等等,无限循环。

您还应该确保在ember应用中使用DS.ActiveModelSerializerDS.ActiveModelAdapter