我目前正在使用Rails 3.0.9和gmaps4rails 0.8.6。
我在为Google地图启用https时遇到问题。
我尝试使用那种溶剂:
Using gmaps4rails with https/SSL
但没有成功。
在布局应用程序中,我添加了这个js include标签:
<%= javascript_include_tag "https://maps.google.com/maps/api/js?sensor=false&libraries=geometry" %>
<%= javascript_include_tag "https://google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.5/src/infobox.js" %>
<%= javascript_include_tag "gmaps4rails.js" %>
<%= javascript_include_tag "https://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclusterer/1.0/src/markerclusterer_compiled.js" %>
我的控制器代码
...
@places = Place.paginate(:page => params[:page], :per_page => 10)
@json = @places.to_gmaps4rails
查看
...
<div id="mapLocal"> <%= gmaps4rails(@json, true false) %> </div>
...
之后谷歌地图仍然使用http。
页面源代码
function gmaps4rails_loadScript() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.google.com/maps/api/js?sensor=false&libraries=geometry&callback=gmaps4rails_init";
document.body.appendChild(script);
}
我尝试将gmaps4rails更改为gmaps。
结果:
Completed 500 Internal Server Error in 54ms
ActionView::Template::Error (undefined method `to_gmaps4rails' for #<String:0xf5d98528>):
13: <script type="text/javascript" charset="utf-8">
14: function gmaps4rails_init() {
15: <% #true is passed here to trigger map initialization %>
16: <%=raw options.to_gmaps4rails(true) %>
17: }
18:
19: function gmaps4rails_loadScript() {
app/views/places/index.html.erb:4:in `_app_views_places_index_html_erb___671263203__86055108_0'
所以我决定升级gem(也许旧版本不支持ssl?)。
从0.8.6升级到1.1.4后,我的基本未更改代码
甚至无法生成地图 <div id="mapLocal"> <%= gmaps4rails(@json) %> </div>
我用firebug检查了js日志,然后返回
Gmaps4RailsGoogle is not defined
Gmaps.map = new Gmaps4RailsGoogle();
答案 0 :(得分:3)
您应该升级到最新版本的gem:0.x.x中不存在Gmaps4RailsGoogle。
使用1.x.x,您需要另外一个文件:
gmaps4rails.googlemaps.js
'gmaps4rails.js'现在是'gmaps4rails.base.js'
使用安装程序,您将复制所有内容。
使用gmaps帮助程序时,需要提供哈希作为第一个参数:
gmaps( :markers => { :data => @json } )
编码1.0.0时需要进行一些更改,导致现在可以在同一页面上创建多个地图。无论如何,所有文档都在wiki中。 我想所有这些迹象都能满足您的需求。