我有一个视图在我的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]