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

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(使用前将#替换为@)

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

  • 使用 Express.js 和 NodeJS,您可以通过响应正文中的重定向发送 JSON

    我正在尝试通过 302 重定向发送 JSON 在 ExpressJS 中这可能吗 API 声明可以添加主体res json 例如 res json 302 name larry 在接收端 重定向的目的地 主体是空的 这是一些示例代码 发送应
  • 我在 Rails 中使用了保留字吗?

    这是我的模型 class Record lt ActiveRecord Base belongs to user belongs to directory end class Directory lt ActiveRecord Base h
  • 从 JSON 文件注入的编译指令 AngularJS

    希望有人能帮助我应对这一挑战 我使用以下命令从服务器请求 JSON 数据 http get 来自服务器的数据返回一个对象 对象中的一个值包含 HTML 标记 该标记使用以下方式注入到页面中 div div 在标记内 有一个名为的自定义指令
  • IE9 JSON 数据“您要打开还是保存此文件”

    开始使用 IE9 测试我的 jQuery 应用程序 看来我在这里可能遇到麻烦了 我注意到 当我将 JSON 数据返回到 Javascript 方法时 我总是收到此提示 您想打开或保存此文件吗 并为我提供了 3 个按钮 打开 保存和取消 当然
  • 如何在 Serde 中(反)序列化强类型 JSON 字典?

    我正在编写一个 Rust 应用程序 它使用公共接口处理来自 TypeScript 客户端的 JSON 消息 我写了一些代码使用serde derive它运行良好 但我不知道如何实现字典 例如 foo data 42 bar data 133
  • 如何为本机启用现有 WCF 服务的 JSONP?

    我有一个现有的服务 如下方法 AspNetCompatibilityRequirements RequirementsMode AspNetCompatibilityRequirementsMode Allowed ServiceBehav
  • 为什么我收到“未定义的方法`assert_valid_keys`”?

    知道为什么我会收到此错误 Exception encountered
  • Swift 3 中的 JSON 解析

    有没有人能够找到一种在 Swift 3 中解析 JSON 文件的方法 我已经能够返回数据 但在将数据分解为特定字段时我没有成功 我会发布示例代码 但我已经尝试了很多不同的方法但没有成功 并且没有保存任何代码 我想要解析的基本格式是这样的 提
  • 如何在 Firebase 远程配置中从 JSON 获取值

    我是 Android 应用开发和 Firebase 的新手 我想知道如何获取存储在 Firebase 远程配置中的 JSONArray 文件中的值 String 和 Int 我使用 Firebase Remote Config 的最终目标是
  • Azure 应用服务在配置中添加字符串数组

    Net core 应用程序并在 Azure 应用服务中部署该应用程序 在我的应用程序中 我有一个包含以下内容的应用程序 settings json 文件 Roles Roles Admins Users 我的 ARM 模板中有以下配置 参数
  • JSON-LD 缺少“}”或对象成员名称。错误

    我喜欢将 json ld 添加到我的网站 然后我想将它添加到我的开发网站来测试它 我收到错误消息 指出缺少 或对象成员名称 这是什么错误 我已正确关闭括号 如何修复它
  • Ruby/Rails 集合到集合

    我有两个表与一个连接表连接 这只是伪代码 Library Book LibraryBooks 我需要做的是 如果我有一个图书馆的 id 我想获取该图书馆拥有的所有书籍所在的所有图书馆 因此 如果我有图书馆 1 图书馆 1 中有书籍 A 和
  • Flutter:将字符串转换为 Map

    我正在使用 SQFlite 在本地存储数据 我有一个表 其中有一个名为 json 的字段 该字段的类型为 TEXT 并存储转换为字符串的 json 例如 name Eduardo Age 23 性别男 到目前为止 一切正常 但随后我需要从数
  • 如何发送和接收大型 JSON 数据

    我对全栈开发比较陌生 目前正在尝试找出一种有效的方法send and fetch我的前端 React 和后端 Express 之间存在大量数据 同时最大限度地减少内存使用 具体来说 我正在构建一个地图应用程序 它需要我处理大型 JSON 文
  • 从父应用程序重新打开 Rails 3 引擎类

    就目前而言 您无法重新打开引擎中包含的引擎类 app只需在父应用程序的目录中添加相同的类即可 app目录 例如 my engine app controllers users controller rb my app app control
  • Rails/Ruby 合并两个具有相同键、不同值的哈希值

    我有两个想要合并的哈希值 它们看起来像这样 Hello gt 3 Hi gt 43 Hola gt 43 第二个哈希看起来像 Hello gt 4 Hi gt 2 Bonjour gt 2 我想合并这两个哈希数组 使结果看起来像 Hello
  • 将两个 JSON 数据合并为具有特定键值的一个

    我有两个 CSV 文件 球数据 json id 1 color red id 2 color blue 法庭 json court id 2001 ball in use 1 court id 2005 ball in use 2 如何根据
  • Ruby on Rails 服务器在 HTTPS POST 请求期间崩溃

    我正在尝试与你沟通城市飞艇API http urbanairship com docs push html broadcast使用 ROR Web 应用程序 在我的控制器中 我有以下代码 require net http require n
  • Elasticsearch:预期的字段名称,但得到了 START_OBJECT

    我一直在尝试运行以下查询 但每次运行时都会收到以下错误 nested ElasticsearchParseException Expected field name but got START OBJECT field value fact
  • 在 Sinatra 中运行后台进程

    我有 Sinatra Rails 应用程序和一个启动一些漫长过程的操作 通常我会为后台作业排队 但这种情况太简单了 后台进程很少启动 所以队列是一个开销 那么如何在没有队列的情况下运行后台进程呢 get build logs project

随机推荐

  • 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