2012-12-08 37 views
3

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

gem 'gmaps4rails' 

并运行“捆绑”。我更新的应用程序/管理/ device.rb文件与“秀”的方法:

show do 
    attributes_table do 
    row :name 
    end 

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

在应用程序/视图/管理/设备/ _map.html.erb我有以下代码:

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

在应用程序/资产/ Java脚本/ application.js中:

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

而且在我的应用程序/模型/ 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 

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

UPDATE

我有Chrome开发者工具检查,发现以下错误:

Uncaught SyntaxError: Unexpected token ; 

,使参考线:

Gmaps.map.markers = ; 
+0

奇怪的错误,to_gmaps4rqils被speced总是返回的东西,至少一个空数组。我不知道你的实例变量是否真的传递给Gmaps方法 – apneadiving

+0

关于我所描述的,你是否有一些文件(css,js)加载不正确? – Luc

+0

我担心'@ markers'是'nil',但是宝石永远不会吐出'nil' – apneadiving

回答

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 %> 
+0

感谢分享! – apneadiving

0

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

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

另外,我觉得你应该添加CSS文件(如果没有出现)到同一个文件。请记住,ActiveAdmin管理自己的Javascript文件,名为active_admin.js;你可以尝试在这个JS中加载Javascript文件;前段时间我有类似的问题,我只能解决它在初始化器中添加文件。

+0

我在active_admin初始化器中添加了“config.register_javascript'gmaps4rails.js'”,但是我得到'http:// localhost:8080/assets/gmaps4rails.js 404(Not Found)'。我不认为我添加了在资产中手动添加js。 – Luc

+0

您是否使用完整路径加载文件? – pablomarti

+0

我在初始化程序/ active_admin.rb中添加了以下内容:“config.register_javascript'gmaps4rails/gmaps4rails.googlemaps.js.coffee'”,并将gmaps4rails.googlemaps.js.coffee复制到公共/资产中,但找到了该文件有同样的错误。我虽然在application.js中添加了必要的'require'语句,但是足够了。 – Luc