Quando si utilizza JBuilder, come posso rimuovere completamente la prova di un elemento di array vuoto dal mio output? Per questo esempio di codice, si supponga di avere tre utenti e il terzo utente ha un indirizzo nil
:Come rimuovere completamente un elemento vuoto da un array con JBuilder
json.array! @users.each do |user|
unless user.address.nil?
json.name user.name
json.address user.address
end
end
Il JSON risultante è:
[
{
"name":"Rob",
"address":"123 Anywhere St."
},
{
"name":"Jack",
"address":"123 Anywhere St."
},
{}
]
Vedi quell'ultimo, vuoto {}
alla fine lì. Quindi, ogni volta che il blocco passa a array!
restituisce nil
. Finisco con un elemento vuoto nell'array, piuttosto che una mancanza di elemento. C'è un modo semplice per dire a JBuilder di non produrre quelli? O devo semplicemente considerare l'output di array!
come un semplice array ol 'e quindi gli elementi compact
o reject
che non desidero?
Sì, potrei farlo completamente, ecco come sto gestendo il problema adesso. E ovviamente non dovrei avere questa logica comunque. ;) Ma mi stavo chiedendo che se/quando questa situazione si presentasse se ci fosse un modo per 'array!' Per gestire questo caso per me ... –