0

我正在使用 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,
 ...

有什么方法可以停止未定义的(空白)条目吗?

谢谢!!

4

1 回答 1

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 数据。

于 2013-04-11T03:52:37.610 回答