Active Model Serializer 关系 return 生产上只有 id,开发上有完整对象

Active Model Serializer relations return only ids on production but full object on dev

我在 rails API.

上的 ruby 的实时与开发环境中发生的事情之间存在差异

在开发中,我看到 JSON 结果中返回了完整的对象,但是,在生产服务器上,我们只能返回 ID。我知道 embed :ids, include: true 但我没有那个集合,所以我的理解是默认行为是将关系作为对象发送到 JSON 中,所以我不确定它为什么有效在一个环境中这样,在另一个环境中不行。

我在活动模型序列化程序文档中找不到任何关于可能导致此问题的全局设置的内容。有没有人见过这样的东西或有什么想法我可以尝试?

发展:

[
    {
        "zip": "84044",
        "city": "MAGNA",
        "state": "UT",
        "country": "USA",
        "rep": {
            "territory": "Utah, Montana & Wyoming",
            "type": "3form",
            "name": "Karey Spransy",
            "fname": "Karey",
            "lname": "Spransy",
            "sales_coordinator": {
                "id": 213536,
                "fname": "Misty",
                "lname": "Medina",
                "full_name": "Misty Medina",
            }
        },
        "studio_rep": {
            "territory": "Utah, Montana & Wyoming",
            "type": "3form",
            "name": "Karey Spransy",
            "fname": "Karey",
            "lname": "Spransy",
            "sales_coordinator": {
                "id": 213536,
                "fname": "Misty",
                "lname": "Medina",
                "full_name": "Misty Medina",
            }
        }
    }
]

制作:

[
    {
        "zip": "90210",
        "city": "BEVERLY HILLS",
        "state": "CA",
        "country": "USA",
        "rep_id": 284015,
        "studio_rep_id": 284693,
    }
]

不幸的是,对于遇到此问题的任何人,我们发现问题在于将 gem 'active_model_serializers' 升级到最新版本。 0.10.x。在我们的 Gemfile 中,我们向活动模型序列化程序添加了一个版本,以便它保持在 0.8.3 版本。所以我们的 Gemfile 看起来像这样:

gem 'active_model_serializers', '~> 0.8.3'

我知道这不能解决最新版本的问题,但在进一步研究时,我认为最新版本希望您使用 json api 适配器来生成它。

在我们的例子中,我们最终将不得不这样做,但现在我们将坚持使用旧版本。