postgres array and rails 4 erb



我有一个视图在我的postgres数据库,返回我的frequencies列数组。不幸的是,它有时返回像{NULL}这样的值(由于原始数据)。

在我的rails视图中,我有这样的东西:

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]
  }, { 
  ...

我可以通过在控制器中迭代列表来修复这个问题,但我认为这将是相当冗长的(和浪费周期)。

是否有一种方法可以让动词输出"正确"的[](而不是[nil]) json当它为空?

试试这个:

 <%= i.frequencies.compact %>

紧凑的例子:

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