【问题标题】:passing object to javascript in rubyonrails在rubyonrails中将对象传递给javascript
【发布时间】:2015-12-09 19:37:39
【问题描述】:

我的MapsController

def show
   @outlet=OUtlet.all
   render 'maps/map'
end

我的查看页面是map.html.erb

<% @outlet.each do |product| %>
    <%= product.latitude %>
    <%= product.longitude %>
<% end %>

结果是

   51.503454  -0.119562  51.499633 -0.124755 51.489633  -0.123755 51.479633  -0.122755

我需要将数组传递给 .js 如下format

var markers = [
    [ 51.503454,-0.119562],
    [ 51.499633,-0.124755],
    [ 51.489633,-0.123755],
    [ 51.479633,-0.122755]
];

我尝试了javascript_tagattribute method 之类的示例,但没有成功。谁能帮忙解决一下。

以上格式是在google-map中绘制标记。

【问题讨论】:

  • 你能告诉我你要把你的javascript放在哪里吗,在map.html.erb或其他地方?
  • 是的,。仅在 map.html.erb 中

标签: javascript ruby-on-rails arrays ruby


【解决方案1】:

您可以编写一个辅助方法来返回一个纬度和经度值数组。

module MapsHelper
  def outlet_lat_lons(outlets)
    lat_lons = []
    outlets.each do |outlet|
      lat_lons << [outlet.latitude, outlet.longitude]
    end
  end 
end

然后在你的js代码中调用这个助手

var markers = <%= outlet_lat_lons(@outlets) %>;

【讨论】:

  • 如果以上答案有帮助,请告诉我。
猜你喜欢
  • 2016-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-07
  • 2017-07-21
  • 2012-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多