Podczas korzystania z JBuilder, w jaki sposób mogę całkowicie usunąć dowody pustego elementu tablicy z moich danych wyjściowych? Dla tej próbki kodu, załóżmy, że mamy trzech użytkowników, a trzeci użytkownik ma nil
adres:Jak całkowicie usunąć pusty element z tablicy przy użyciu JBuilder
json.array! @users.each do |user|
unless user.address.nil?
json.name user.name
json.address user.address
end
end
Powstały JSON jest:
[
{
"name":"Rob",
"address":"123 Anywhere St."
},
{
"name":"Jack",
"address":"123 Anywhere St."
},
{}
]
Zobacz ten ostatni, pusty {}
na koniec. Tak więc za każdym razem, gdy blok przechodzi do array!
zwraca nil
, kończę z pustym elementem w tablicy, zamiast z brakiem elementu. Czy jest jakiś łatwy sposób, aby powiedzieć JBuilderowi, żeby tego nie robił? Czy muszę po prostu traktować wyjście array!
jako zwykłą tablicę, a następnie compact
lub elementów, których nie chcę?
Tak, mogę to całkowicie zrobić, tak jak teraz radzę sobie z problemem. I oczywiście nie powinienem mieć takiej logiki w widoku. ;) Ale zastanawiałem się tylko, czy/gdy pojawi się taka sytuacja, jeśli istnieje sposób na 'tablicę!' Do obsługi tego przypadku dla mnie ... –