我有三个模型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每个订单项目的内部并将它们替换为产品的字段。
我怎样才能达到预期的输出?