2012-12-08 3 views
3

Попробуйте использовать gmaps4rails в моем приложении ActiveAdmin/Rails. Для этого я добавил следующее в мой Gemfile:gmap4rails в ActiveAdmin: карты не отображаются

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

в приложение/активы/JavaScripts/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

Weird ошибка, то to_gmaps4rqils будет speced всегда возвращать что-то, по крайней мере, пустой массив. Интересно, действительно ли ваша переменная экземпляра передана методу Gmaps. – apneadiving

+0

Что касается того, что я описал, вы не уверены, что некоторые файлы (css, js) загружены неправильно? – Luc

+0

i fear '@ markers' is' 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; вы можете попробовать загрузить файлы Javascript в этом JS; некоторое время назад у меня была аналогичная проблема, и я только смог ее решить, добавив файлы в инициализатор.

+0

Я добавил «config.register_javascript« gmaps4rails.js »в инициализаторе active_admin, но получаю« http: // localhost: 8080/assets/gmaps4rails.js 404 (Not Found) ».Я не думал, что добавляю, чтобы добавить js вручную в активы. – Luc

+0

Вы загрузили файлы с полным путем? – pablomarti

+0

Я добавил в initializer/active_admin.rb следующее: «config.register_javascript» gmaps4rails/gmaps4rails.googlemaps.js.coffee »и скопировал gmaps4rails.googlemaps.js.coffee в public/assets, файл найден, но я все еще имеют ту же ошибку. Я, хотя добавляю требуемый оператор require, в application.js, где достаточно. – Luc