如何选择活动模型序列化器关系所需的属性

2023-11-24

我正在使用JSONAPI格式随着主动模型序列化器创建一个 apiRails API.

我有一个序列化器,它显示特定的post那有很多topics目前,在关系下列出了这些主题。目前它只列出了 id 和类型。我也想显示主题的标题。

有人会说用include: 'topics'在我的控制器中,但我不需要完整的主题记录,只需要它的标题。

Question:如何指定要显示主题的哪些属性?

我拥有的

"data": {
  "id": "26",
  "type": "posts",
  "attributes": {
    "title": "Test Title 11"
  },
  "relationships": {
    "topics": {
      "data": [
        {
          "id": "1",
          "type": "topics"
        }
      ]
    }
  }
}

我想要的是

"data": {
  "id": "26",
  "type": "posts",
  "attributes": {
    "title": "Test Title 11"
  },
  "relationships": {
    "topics": {
      "data": [
        {
          "id": "1",
          "type": "topics",
          "title": "Topic Title"
        }
      ]
    }
  }
}

我当前的序列化器类编辑:这就是我所追求的。

class PostSerializer < ActiveModel::Serializer
  attributes :title

  belongs_to :domain
  belongs_to :user

  has_many :topics, serializer: TopicSerializer

  def topics
    # THIS IS WHAT I AM REALLY ASKING FOR
  end
end

class TopicSerializer < ActiveModel::Serializer
  attributes :title, :description

  belongs_to :parent
  has_many :children
end

我尝试过的一件事- 下面有一个答案可以使这项工作有效,但这并不是我真正想要的。

class PostSerializer < ActiveModel::Serializer
  attributes :title, :topics

  belongs_to :domain
  belongs_to :user

  def topics
    # THIS WAS ANSWERED BELOW! THANK YOU
  end
end

只需确保返回一个散列或散列数组,如下所示:

def videos
    object.listing_videos.collect do |lv|
      {
        id: lv.video.id,
        name: lv.video.name,
        wistia_id: lv.video.wistia_id,
        duration: lv.video.duration,
        wistia_hashed_id: lv.video.wistia_hashed_id,
        description: lv.video.description,
        thumbnail: lv.video.thumbnail
      }
    end
  end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何选择活动模型序列化器关系所需的属性 的相关文章

随机推荐

  • Java 类路径 - Linux

    我试图了解类路径的真正工作原理 在网上搜索之后 这是我到目前为止所到达的地方 我已经添加了 export CLASSPATH home foo home foo Java code my code at etc environment 顺便
  • 我们可以在 ASP.NET Webforms(*.aspx 页面)中使用 Razor 语法吗?

    我喜欢 Microsoft 在其 WebMatrix 产品中为内联编码开发的 Razor 语法 http en wikipedia org wiki Microsoft WebMatrix 既然 Visual Studio SP1 已实现
  • Spark Dataframe 最大列数

    Spark Dataframe 的最大列数是多少 我尝试从数据框文档中获取它 但无法找到它 从体系结构的角度来看 它们是可扩展的 因此列数不应有任何限制 但它可能会导致节点上的负载不均匀 并可能影响转换的整体性能
  • Angular 4 - 取消订阅的最佳方式

    我很好奇如何取消所有订阅 我知道 takeWhile 和 takeUntil 我发现 takeUntil 对我来说更有用 据我了解 takeWhile 在我们获取数据后生效 然后取消订阅 直到组件被销毁 使用 takeUntil 和不使用它
  • 在 C# 中跨多个列表查找公共项的最快方法

    鉴于以下情况 List
  • 如何在 SQL Server 中将 float 转换为 varchar

    我有一个包含不同长度数字的浮点列 我正在尝试将它们转换为 varchar 有些值超过了 bigint 最大大小 所以我不能做这样的事情 cast cast float field as bigint as varchar 100 我尝试过使
  • 如何在 Mailgun HTTP API 中渲染 Rails 邮件程序视图

    我正在使用 Mailgun HTTP API 从 Rails 应用程序发送电子邮件 但我无法呈现邮件程序视图 这是我的邮件类 class MailgunMails lt ActionMailer Base def send complex
  • 如何固定文本区域的字符数宽度? (cols 属性不起作用)

    我想根据最大数量指定文本区域的宽度等宽字体他们应该能够在每一行中容纳的字符既没有多余的剩余空间 也没有溢出 有一些类似的问题 但一致的答案是使用cols属性 显然不起作用 如图所示这个jsFiddle 它的 HTML 是这样的
  • 如何使用 Spark 上下文访问 Web URL

    我尝试使用 textFile 方法从 Spark shell 中使用 WEB URL 但出现错误 也许这不是正确的方法 那么有人可以告诉我如何从 Spark 上下文访问 Web URL 我使用的是spark版本1 3 0 Scala 版本
  • 实体框架中的多个自引用关系

    我目前有一个名为EmployeeDetails如下所示 public class EmployeeDetails public int EmployeeDetailsId get set public string Name get set
  • 在 Java 中以 1000 个线程递增 AtomicInteger 不会生成值 1000 [重复]

    这个问题在这里已经有答案了 我正在执行一个java代码 其中我有一个AtomicInteger其中 1000 个线程正在尝试执行incrementAndGet 我预计最终值为 1000 但每次运行都会生成各种不同的值 代码如下 class
  • 如何在 JGit 中“git log --follow ”? (检索完整历史记录,包括重命名)

    我必须如何扩展以下 logCommand 才能获得 follow的选项git log命令工作 Git git new Git myRepository Iterable
  • 有关 asp.net mvc 上的 C# 和 bool 的帮助

    根据值打印 是 或 否 的最佳方法是什么 在我看来我想打印出来 模型 isStudent 我不想要 True 或 False 我想要 Yes 或 No 我必须写 if else 语句吗 编写一个辅助方法 public static clas
  • 更改嵌套记录中的属性值

    是否可以使用with关键字创建嵌套记录的新实例 其嵌套属性具有不同的值 两种情况 简单属性和集合 让我们看一个例子 class Program static void Main string args var company new Com
  • d3.js - 堆积条形图中的第 2 组数据值

    我有以下 csv 数据 date scanned unscanned compid sbu 01 2014 10 90 101 f r 02 2014 55 40 101 f r 03 2014 45 23 101 f r 04 2014
  • 太阳路径的计算

    我正在编写几种计算太阳穿过特定点的路径所需的方法 我使用两个不同的源编写代码进行计算 但都没有产生所需的结果 来源是 http www pveducation org pvcdrom properties of sunlight suns
  • Thymeleaf 使用 th:each 动态创建表单

    我想知道如何创建使用的表单th object对于循环中的每个对象th each 例如 我有以下代码 HTML
  • 异步回发不会导致 document.ready 被执行

    我必须对几个页面中使用的用户控件进行一些更改 用户控件包含一些 JQuery 来处理分页任务 显示 3 个月的数据并一次隐藏 9 个月 当控件加载时 它会自动显示当前季度并执行 document ready 中的这段代码 我遇到的问题是 在
  • 使用 OpenCV 进行模式识别

    我正在尝试检测绿色田野上的物体上的图案 该图案由三种颜色组成 两侧有两个粉色标记 中间有一个蓝色标记 排列得像交通灯一样 起初 我尝试将网络摄像头的图像转换为 HSV 色彩空间 并使用 cvInRangeS 隔离颜色 但随着白天房间内光线的
  • 如何选择活动模型序列化器关系所需的属性

    我正在使用JSONAPI格式随着主动模型序列化器创建一个 apiRails API 我有一个序列化器 它显示特定的post那有很多topics目前 在关系下列出了这些主题 目前它只列出了 id 和类型 我也想显示主题的标题 有人会说用inc