gpt4 book ai didi

ruby-on-rails - 如何为事件模型序列化程序关系选择我想要的属性

转载 作者:行者123 更新时间:2023-12-04 07:52:14 25 4
gpt4 key购买 nike

我正在使用 JSONAPI format连同 Active Model Serializers使用 rails-api 创建 api .

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

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

问题 :如何指定要从主题中显示的属性?

我有什么

"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

关于ruby-on-rails - 如何为事件模型序列化程序关系选择我想要的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32854013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com