如何将rails数据放入javascrip数组中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将rails数据放入javascrip数组中相关的知识,希望对你有一定的参考价值。

我有来自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 %>;

但是它甚至带来了我不需要的东西!

答案

这是您要寻找的结果吗?

<% count = @locations.count %>
var locations = [
  <% @locations.each_with_index do |loc, idx| %>
    <%= loc.lat %>, <%= loc.lang %><% unless idx + 1 == count %>,<% end %>
  <% end %>
];
另一答案

来自db的数据格式是什么? JSON?在这种情况下,您应该:

var locations = JSON.parse( <%= raw @locations.to_json %> );
另一答案

是否需要从集合中构建对象的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 %>

以上是关于如何将rails数据放入javascrip数组中的主要内容,如果未能解决你的问题,请参考以下文章

C语言中如何将double型数据转换为数组?

如何避免 Rails 脚手架将模型放入命名空间

将硬编码值放入 Rails 应用程序的 sqlite 数据库中

如何将发布数据放入 CodeIgniter 中的数组中?帖子项目是数组

sql查询出来的结果,如何放入数组中

如何将数组中的数据放入标签Swift 3