gpt4 book ai didi

ruby-on-rails - 事件模型序列化程序 - 是否可以显示嵌入对象的 URL?

转载 作者:行者123 更新时间:2023-12-04 05:48:38 25 4
gpt4 key购买 nike

我正在尝试使我的 API 高度连接/可抓取,因此我希望所有嵌入式对象关联返回关联对象的 URL,以及关联对象的 ID 和属性。

例如给定:

class Car < ActiveModel::Serializer
attributes :id, :make, :model, :url
has_many :passengers

def url
car_url(object)
end
end

class Passenger < ActiveModel::Serializer
attributes :id, :name, :url

def url
passenger_url(object)
end
end

我希望 http://api.approot.com/car/3.json 返回如下内容:

{        
- car: {
id: 3,
make: 'Ford',
model: 'F150',
url: 'http://api.approot.com/car/3.json',
- passengers: [
- {
id: 7,
name: 'Bill',
url: 'http://api.approot.com/passengers/7'
},
- {
id: 13,
name: 'Will',
url: 'http://api.approot.com/passengers/13'
}
]
}
}

然而,鉴于此实现,当您访问 Car 时,ActiveModel::Serializers 当前不会显示 Passenger 的“url”属性(因为我怀疑,在查看所访问的 Car 对象的范围内,“object”并未为 Passenger 定义通过上面的示例 URL)。

关于如何解决这个问题有什么想法吗?

谢谢!

最佳答案

由于您不在 View / Controller 的上下文中,您可能需要将 :host 选项传递给您的 *_url 方法。

def url
car_url(object, host: "api.approot.com")
end

关于ruby-on-rails - 事件模型序列化程序 - 是否可以显示嵌入对象的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23795900/

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