使用两个对象渲染RABL模板

时间:2014-05-03 05:37:16

标签: ruby-on-rails rabl

我最近发现了一个条件,我想在RABL中发送两个对象作为回应。

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

我能管理的就是这个,这是不正确的。

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

我找到了一个解决方案,即使用partial来迭代对象并添加一个新的

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

这是一个hack,我不想要它,因为它包装节点中的所有名称。 还有其他办法吗?

1 个答案:

答案 0 :(得分:1)

在你的rabl文件中试试这个:

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