【问题标题】:active_model_serializer many to many infinite loopactive_model_serializer 多对多无限循环
【发布时间】:2013-05-09 20:17:40
【问题描述】:

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

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

【问题讨论】:

    标签: ruby-on-rails active-model-serializers


    【解决方案1】:

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

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

    你可以使用其中一个 has_many 但不能同时使用。

    【讨论】:

      【解决方案2】:

      这两种情况都需要使用:has_and_belongs_to_many

      【讨论】:

        猜你喜欢
        • 2021-08-25
        • 2018-12-23
        • 1970-01-01
        • 1970-01-01
        • 2016-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多