0

postgres データベースに、frequencies列に配列を返すビューがあります。{NULL}残念ながら、 (生データのため)のような値を返すことがあります。

私のレールビューでは、次のようなものがあります:

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

コントローラーのリストを反復処理することでこれを修正できますが、これはかなり長く続くと思います (そしてサイクルの無駄です)。

[]それがnullのときに(代わりに[nil])jsonで「正しい」を出力するerbを取得する方法はありますか?

4

1 に答える 1

3

これを試して:

 <%= i.frequencies.compact %>

コンパクトな例:

 [nil].compact #=> []
 [1,2, nil, 3, nil].compact  #=> [1,2,3]
于 2013-03-27T19:12:31.653 に答える