在使用JBuilder时,我怎样才能完全删除输出中空数组元素的证据?对于这个代码示例,假设我们有三个用户,第三个用户有一个nil
地址:
json.array! @users.each do |user|
unless user.address.nil?
json.name user.name
json.address user.address
end
end
生成的JSON如下:
[
{
"name":"Rob",
"address":"123 Anywhere St."
},
{
"name":"Jack",
"address":"123 Anywhere St."
},
{}
]
看到最后一个空的
{}
。所以,任何时候传递给 array!
的块返回 nil
,我最终都会得到一个空元素的数组,而不是缺少元素。有没有简单的方法告诉JBuilder不要输出它们?还是我只需要把 array!
的输出当作普通的数组,然后 compact
或 reject
不想要的元素?
array!
为我处理这种情况... - Rob Cameron