2012-12-08 38 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