ActiveAdmin中的gmap4rails:地图不会出现

时间:2012-12-08 19:15:36

标签: ruby-on-rails activeadmin gmaps4rails

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

gem 'gmaps4rails'

并运行“捆绑”。我用app:/ / p>更新了app / admin / device.rb文件中的'show'方法

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 = ;

2 个答案:

答案 0 :(得分: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 %>

答案 1 :(得分: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文件;前段时间我遇到了类似的问题,我只能解决它在初始化程序中添加文件的问题。