我有三个模型Product
,Order
和OrderItem
。给定 的实例Order
,您可以通过调用 来获取订单商品列表order.order_items
。每个都OrderItem
必须只有一个Product
对象,该对象由 a 引用product_id
。
我想创建一个 RESTful API,客户可以在其中询问有关订单的信息,而我的服务器将一次“加入”所有数据。与让客户端使用 javascript 迭代每个订单项目、获取产品 ID 并向视图发出请求相反,该product.json
视图将返回所请求产品的信息。
我有这样的product.json
观点,但我认为最好让我的 API 更容易使用,并尽量减少对服务器的请求数量(不过,我没有理由支持这种观点)
例如,当您询问有关订单 1 的信息时,我想返回的输出如下所示
{ "order_id" : 1,
"order_items" : [
{
"order_item_id" : 1,
"product" : {
"name": "Carrots"
}
},
{
"order_item_id" : 2,
"product" : {
"name": "Tuna"
}
}
]
}
在我order.json
看来,我已经开始这样做了
json.(@order, :order_items)
它表明了这一点
{ "order_id" : 1,
"order_items" : [
{
"order_item_id" : 1,
"product_id" : 13
},
{
"order_item_id" : 2,
"product_id" : 128
}
]
}
这非常接近,但是我可以添加什么来扩展product_id
每个订单项目的内部并将它们替换为产品的字段。
我怎样才能达到预期的输出?