2013-03-27 84 views
0

我在我的postgres數據庫中有一個視圖,該數據庫返回我的frequencies列上的數組。不幸的是,它有時會返回像{NULL}這樣的值(由於原始數據)。postgres數組和軌道4 erb

在我的軌道

觀,我有這樣的:

dataset = [ 
    <% @item.each do |i| %> 
     { 
      name: "<%= i.device %>" 
      lng: <%= i.longitude %> 
      lat: <%= i.latitude %> 
      frequencies: <%= i.frequencies.to_s.html_safe %> 
     }, 
    <% end %> 
] 

這似乎工作的偉大 - 當它到達包含{NULL}記錄情況除外:

在JavaScript控制檯它表明:

Uncaught ReferenceError: nil is not defined 

,並在html它表明:

... 
    }, { 
    name: "blah", 
    lng: -122.2, 
    lat: 37.4, 
    frequencies: [nil] 
    }, { 
    ... 

我可以通過迭代控制器中的列表來解決這個問題,但我認爲這將會相當長時間(並且浪費週期)。

是否有一種方法,我可以讓erb輸出'正確的'[](而不是[nil])json何時爲空?

回答

3

試試這個:

<%= i.frequencies.compact %> 

compact例如:

[nil].compact #=> [] 
[1,2, nil, 3, nil].compact #=> [1,2,3] 
+0

哇噢!謝謝! – yee379 2013-03-27 19:29:10