2014-05-03 65 views
1

我最近遇到一個條件是我想在RABL中發送兩個對象作爲響應。渲染具有兩個對象的RABL模板

[ 
{ 
    id: "1", 
    name: "XYZ" 
}, 
{ 
    id: "1", 
    name: "XYZ" 
}, 
{ 
    total: "2" 
} 
] 

我能管理的只是這個,這是不正確的。

[ 
{ 
    id: "1", 
    name: "XYZ", 
    total: "2" 
}, 
{ 
    id: "1", 
    name: "XYZ", 
    total: "2" 
} 
] 

我發現了一個解決方案,它是使用局部迭代的對象,只是增加一個新的

node(:name) {partial("users/names", :object => @users)} 
node(:total){ @total} 

這是一個黑客,我不希望因爲它封裝了所有的節點中的名稱。 有沒有其他方法可以做到這一點?

+0

問題添加操作代碼。 – Dave

回答

1

在你Rabl的文件試試這個:

child @users, object_root: false do 
    attributes :id, :name 
end 
node(:total) { @users.size }