Khi sử dụng JBuilder, làm thế nào tôi có thể loại bỏ hoàn toàn bằng chứng của một phần tử mảng trống từ đầu ra của tôi? Đối với mẫu mã này, giả sử rằng chúng tôi có ba người sử dụng và người sử dụng thứ ba có một địa chỉ nil
:Làm thế nào để loại bỏ hoàn toàn một phần tử rỗng khỏi một mảng với JBuilder
json.array! @users.each do |user|
unless user.address.nil?
json.name user.name
json.address user.address
end
end
Các kết quả JSON là:
[
{
"name":"Rob",
"address":"123 Anywhere St."
},
{
"name":"Jack",
"address":"123 Anywhere St."
},
{}
]
Thấy rằng cuối cùng, trống {}
ở cuối đó. Vì vậy, bất kỳ lúc nào khối được chuyển đến array!
trả về nil
Tôi kết thúc với một phần tử trống trong mảng, thay vì thiếu phần tử. Có cách nào dễ dàng để nói với JBuilder không để sản xuất những? Hay tôi chỉ cần xử lý đầu ra của array!
dưới dạng mảng đồng bằng ol 'và sau đó là compact
hoặc reject
các yếu tố mà tôi không muốn?
Vâng, tôi hoàn toàn có thể làm điều đó, đó là cách tôi xử lý sự cố ngay bây giờ. Và tất nhiên tôi không nên có logic này trong quan điểm nào. ;) Nhưng tôi đã chỉ tự hỏi rằng nếu/khi tình trạng này phát sinh nếu có một cách để 'mảng!' Để xử lý trường hợp này cho tôi ... –