gmaps4rails和自动完成谷歌API不兼容

我在gmaps4rails gem和google place API之间存在兼容性问题

基本上,如果我在我看来这样的gmpas4rails:

 

然后这个脚本不再工作了(它正常激活user_address字段上的自动完成:

  $(document).ready(initialize_gmaps_autocomplete_user_address()); function initialize_gmaps_autocomplete_user_address() { var input = document.getElementById('user_address'); var defaultBounds = new google.maps.LatLngBounds(new google.maps.LatLng(42.71422,-4.222666), new google.maps.LatLng(51.179343,8.47412)); var autocomplete = new google.maps.places.Autocomplete(input); autocomplete.setBounds(defaultBounds); autocomplete.setTypes(['geocode']); } 

我试图通过gmaps4rails.call_back调用脚本并更改脚本中的var名称…

任何的想法?

我猜你第二次打电话给google api搞砸了。

两个解决方案:

1)不包括部分的js:

 <%= gmaps({your_hash}, true, false) %> 

并手动包含所有js文件,但一定要写:

  

这是原始的部分,所以你不要忘记任何文件。

2)在git上抓取当前版本并直接添加places

 <%= gmaps({ "map_options" => { "libraries" => ["places"] } }) %> 

我稍后会更新gem,所以高于0.10.2版本将包括这个。

实际上2)应该是

 <%= gmaps({:map_options => {:libraries => ["places"]}}) %> 

因为在gmaps4rails的源代码中使用符号而不是字符串。

要使它与字符串一起使用,您必须使用HashWithIndifferentAccess:

 <%= gmaps(HashWithIndifferentAccess.new("map_options" => {"libraries" => ['places']}))%>