Rails API 如何发送带有产品的附加图像作为响应
Rails API how to send attached images with the Product as response
我正在尝试将响应发送回前端客户端。
这是我要创建的响应:
{
"data": [
{
"id": 1,
"product_title": "Some item"
"images": ["imageurl1", "imageurl2", "imageurl3"]
// other product info
},
{
"id": 2,
"product_title": "Some item"
"images": ["imageurl4", "imageurl5", "imageurl6"]
// other product info
}
]
}
目前它看起来像:
{
"data": [
{
"id": 1,
"product_title": "Some item"
// other product info
},
{
"id": 2,
"product_title": "Some item"
// other product info
}
]
}
我的 product.rb 看起来像:
class Product < ApplicationRecord
has_many_attached :images
end
有什么方法可以将附加图像包含在产品对象中?
我一直在胡思乱想,也尝试查看其他帖子,但没有找到有效的解决方案。
您可以使用 ActiveStorage 的助手 linking 文件,如 Active Storage Overview Rails Guide 中所述。
示例:
url_for(user.avatar)
下载示例 link 内容处置设置:
rails_blob_path(user.avatar, disposition: "attachment")
如果您要从序列化程序 class 或除控制器操作之外的其他内容生成 API 输出,请注意有关从 controller/view上下文:
Rails.application.routes.url_helpers.rails_blob_path(user.avatar, only_path: true)
这些示例使用 user.avatar
,但在您的示例中,这将是 Product
模型中众多 images
之一的实例。
在决定如何在 API 中公开 URL 之前,值得阅读该指南的全部内容。例如,考虑是否需要 private/signed/authenticated URLs 因为默认情况下这些方法生成 public URLs.
我正在尝试将响应发送回前端客户端。
这是我要创建的响应:
{
"data": [
{
"id": 1,
"product_title": "Some item"
"images": ["imageurl1", "imageurl2", "imageurl3"]
// other product info
},
{
"id": 2,
"product_title": "Some item"
"images": ["imageurl4", "imageurl5", "imageurl6"]
// other product info
}
]
}
目前它看起来像:
{
"data": [
{
"id": 1,
"product_title": "Some item"
// other product info
},
{
"id": 2,
"product_title": "Some item"
// other product info
}
]
}
我的 product.rb 看起来像:
class Product < ApplicationRecord
has_many_attached :images
end
有什么方法可以将附加图像包含在产品对象中?
我一直在胡思乱想,也尝试查看其他帖子,但没有找到有效的解决方案。
您可以使用 ActiveStorage 的助手 linking 文件,如 Active Storage Overview Rails Guide 中所述。
示例:
url_for(user.avatar)
下载示例 link 内容处置设置:
rails_blob_path(user.avatar, disposition: "attachment")
如果您要从序列化程序 class 或除控制器操作之外的其他内容生成 API 输出,请注意有关从 controller/view上下文:
Rails.application.routes.url_helpers.rails_blob_path(user.avatar, only_path: true)
这些示例使用 user.avatar
,但在您的示例中,这将是 Product
模型中众多 images
之一的实例。
在决定如何在 API 中公开 URL 之前,值得阅读该指南的全部内容。例如,考虑是否需要 private/signed/authenticated URLs 因为默认情况下这些方法生成 public URLs.