2013-03-27 86 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