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