Rails jbuilder给我数组中未定义的条目

时间:2013-02-27 20:54:58

标签: ruby-on-rails-3 jbuilder

我正在使用jbuilder构建一个数组。

这是tree.json.jbuilder代码:

json.array!(@locations) do |location|
  if location.is_root?
    json.label location.name
    json.id location.id
    ...
  end
end

json产生的开头包含一些“未定义”条目:

[
   { },
   { },
   { },
   { },
   {
     label: "First Label",
     id: 1,
 ...

有没有办法停止未定义(空白)条目?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在#array!块中过滤数组元素。要禁用以停止空白条目,您必须先选择所选数组。然后构建json内容。

json.array! @locations.select{ |location| location.is_root? } do |location|
  json.label location.name
  json.id location.id
  ...
end

然而,上述解决方案的顺序是O(2n),即使先前(您的)解决方案是O(n)。 如果您坚持服务器端的计算速度,请使用前一个并正确处理客户端的json数据。