原因很簡單:部分包含很多JavaScript,您無法加載並執行此操作。
所以你不能在那裏使用RJS。
正確的做法是UJS:使用AJAX調用獲取數據並呈現結果。在下面的代碼中,我使用jQuery。
在您的視圖中添加:
//include google script
<script type="text/javascript" src='http://maps.google.com/maps/api/js?sensor=false&libraries=geometry'></script>
//include gmaps4rails javascript
<%=javascript_include_tag 'gmaps4rails' %>
<script type="text/javascript" charset="utf-8">
//load map when button click (replace with what you want)
$('#ajax_map').click(function(){
//you have to set a size to the div otherwise the map won't display, that's the purpose of these css classes
$('#map_container').addClass('map_container');
$('#gmaps4rails_map').addClass('gmaps4rails_map');
//create the map object
Gmaps4Rails.initialize();
//of course, replace these two with your dynamic data, you'd have to use some $.ajax jQuery method.
Gmaps4Rails.direction_conf.origin = 'toulon, france';
Gmaps4Rails.direction_conf.destination = 'paris, france';
//read the js file, you can customize much more: https://github.com/apneadiving/Google-Maps-for-Rails/blob/master/public/javascripts/gmaps4rails.js
Gmaps4Rails.create_direction();
});
</script>
<div id="map_container">
<div id="gmaps4rails_map"></div>
</div>
<button type="button" id="ajax_map">Ajax Map</button>
添加下面的類在你的CSS:
#map-container {
width: 800px;
}
#gmaps4rails_map {
width: 800px;
height: 400px;
}
哇,感謝您的快速答覆!很棒!此外,gmaps4rails是一個非常棒的寶石,感謝所有的工作! – user753416 2011-06-18 10:30:05
我沒有編輯權限,但CSS應該是#而不是。 bc他們是ID – kinet 2011-06-23 07:21:28
@kinet:謝謝;) – apneadiving 2011-06-23 08:00:42