在控制器的show方法中,我有@object设置查询
@object = WorkOrder.find(params[:id])
现在,show.json.jbuilder模板的代码为:
json.extract! @object, :id, :note, :status, :created_at
json.store_name @object.store.display_name
和o / p是,
{
"id": 31,
"note": "work_order for store A",
"status": "complete",
"created_at": "2015-11-26T11:16:53.000Z",
"store_name": "store name"
}
现在,如何插入' store_name'自定义键位于' status'之间和' created_at' ?
答案 0 :(得分:2)
如果你想要特定顺序的属性,那么如果你自己添加它们可能会更好。
Jbuilder文件:
json.id @object.id
json.note @object.note
json.status @object.status
json.display_name @object.store.display_name
json.created_at @object.created_at
<强>输出强>
{
"id": 31,
"note": "work_order for store A",
"status": "complete",
"display_name": "store name",
"created_at": "2015-11-26T11:16:53.000Z"
}
我建议你嵌入关系。如果要添加Store
的其他属性,则可以更好地扩展。
示例:强>
Jbuilder文件:
json.id @object.id
json.note @object.note
json.status @object.status
json.store do
json.name @object.store.display_name
end
json.created_at @object.created_at
<强>输出强>
{
"id": 31,
"note": "work_order for store A",
"status": "complete",
"store": {
"name": "store name"
},
"created_at": "2015-11-26T11:16:53.000Z"
}
稍后您可以轻松地将属性添加到Store
哈希,而不会破坏界面。
答案 1 :(得分:1)
你也可以让Rails像这样做魔术:
render :json => @object, :include => {:store => {:only => :display_name}}
答案 2 :(得分:-2)
我担心它无法将store_name带到其他位置。你应该对你拥有的东西感到满意。