我有来自Rails db的数据集合,但我想将其转换为js数组。
下面的数组是静态的,因此我想从我的rails应用程序中获取经度和纬度值,并将其转换为一个像下面这样的数组。
var locations = [
{lat: -31.563910, lng: 147.154312},
{lat: -33.718234, lng: 150.363181},
{lat: -33.727111, lng: 150.371124},
{lat: -33.848588, lng: 151.209834},
{lat: -33.851702, lng: 151.216968},]
我尝试过:
var locations = <%= raw @locations.to_json %>;
但是它甚至带来了我不需要的东西!
答案 0 :(得分:0)
这是您要找的结果吗?
<% count = @locations.count %>
var locations = [
<% @locations.each_with_index do |loc, idx| %>
{<%= loc.lat %>, <%= loc.lang %>}<% unless idx + 1 == count %>,<% end %>
<% end %>
];
答案 1 :(得分:0)
来自db的数据格式是什么? JSON? 在这种情况下,您应该:
var locations = JSON.parse( <%= raw @locations.to_json %> );
答案 2 :(得分:0)
是否需要从集合中构建对象的JS数组?
您还可以为此使用JSON和OpenStruct库。
require 'JSON'
arr = JSON.parse(@locations.to_json, object_class: OpenStruct)
然后,您可以将数组作为JS对象进行管理。
如果您希望构建JS数组,则可以使用Rockwells解决方案之类的方法
var locations = []
<% @locations.each do |loc| %>
locations.push({lat: "<%= loc.lat %>", lng: "<%= loc.lang %>"});
<% end %>