При использовании 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
элементы, которые мне не нужны?