В настоящее время я использую Rails 3.0.9 и gmaps4rails 0.8.6.
У меня проблема с включением https для карт Google.
Я пытался использовать это решение:
Использование gmaps4rails с 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
View
...
<div id="mapLocal"> <%= gmaps4rails(@json, true false) %> </div>
...
После этого карты Google по-прежнему работают с 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>
Я проверил журналы js с помощью firebug, и он возвращает
Gmaps4RailsGoogle is not defined
Gmaps.map = new Gmaps4RailsGoogle();