2

ruby 的 active_model_serializer (AMS) 是否能够管理多对多关系?

例如:

class ProjectSerializer < ActiveModel::Serializer
    has_many :resources
end

class ResourcesSerializer < ActiveModel::Serializer
    has_many :projects
end

我收到“堆栈级别太深”错误。

参考 AMS github repo 上的这个问题:https ://github.com/rails-api/active_model_serializers/issues/211

根据上一个链接,我认为这还不支持,但欢迎任何优雅的解决方法。

4

2 回答 2

0

您收到错误“堆栈级别太深”的原因是它会是一个无限循环。

每个资源都会列出它拥有的项目,然后列出他们拥有的资源,然后再次列出项目,依此类推。

您可以使用其中一个 has_many 但不能同时使用两者。

于 2014-06-13T08:50:31.910 回答
0

你需要:has_and_belongs_to_many在这两种情况下使用

于 2015-03-25T12:29:43.167 回答