4

尝试在我的 ActiveAdmin / Rails 应用程序中使用 gmaps4rails。为此,我在 Gemfile 中添加了以下内容:

gem 'gmaps4rails'

并运行了一个“捆绑包”。我更新了 app/admin/device.rb 文件中的“显示”方法:

show do 
  attributes_table do
    row :name
  end

  # Get device location
  @markers = Location.all.to_gmaps4rails
  div do
    render "map"
  end
end

在 app/views/admin/devices/_map.html.erb 我有以下代码:

<%= stylesheet_link_tag 'gmaps4rails' %>
<%= gmaps4rails(@markers) %>
<%= yield :scripts %>

在 app/assets/javascripts/application.js 中:

//= require gmaps4rails/gmaps4rails.googlemaps
//= require gmaps4rails/gmaps4rails.base
//= require jquery
//= require jquery_ujs
//= require_tree .

在我的 app/models/location.rb 中:

class Location < ActiveRecord::Base
  acts_as_gmappable

  attr_accessible :latitude, :longitude

  def gmaps4rails_address
    "#{self.latitude}, #{self.longitude}" 
  end

  def location
    [:latitude, :longitude]
  end
end

当我进入设备的显示页面时,地图不显示(全为空白)。有没有我错过的配置?

更新

我已经检查了 chrome 开发人员工具并注意到以下错误:

Uncaught SyntaxError: Unexpected token ;

引用该行:

Gmaps.map.markers = ;
4

2 回答 2

2

使用以下方法修复:

div do
  markers = Location.all.to_gmaps4rails
  render "map", { :markers => markers }
end

和 :

<%= stylesheet_link_tag 'gmaps4rails' %>
<%= gmaps({
        "map_options" => { "zoom" => 2, "auto_adjust" => false},
        "markers"     => { "data" => markers }
        })
%>
<%= yield :scripts %>
于 2012-12-16T13:12:47.443 回答
0

您必须在/config/initializers/active_admin.rb 中加载 Javascript 文件;搜索部分:

# To load a javascript file:
#   config.register_javascript 'my_javascript.js'

另外,我认为您应该将 CSS 文件(如果没有出现)添加到同一个文件中。

请记住,ActiveAdmin 管理自己的 Javascript 文件,名为active_admin.js;您可以尝试在此 JS 中加载 Javascript 文件;前段时间我遇到了类似的问题,我只能在初始化程序中添加文件来解决它。

于 2012-12-08T19:58:51.723 回答