2016-01-07 135 views
0

我有一個Rails 4應用程序。我想在谷歌地圖街景上顯示位置。經度和緯度保存在數據庫中,因此只能通過導軌訪問。 控制器:如何將rails數據傳遞給javascript?

@posts.each do |post| 
    markers << post.marker_single_show 
end 

的Javascript:

function addMarker(latLng, map, icon) { 
    if (formMarker !== undefined) { 
    formMarker.setMap(null); 
    } 
    formMarker = new google.maps.Marker({ 
    position: latLng, 
    animation: google.maps.Animation.BOUNCE, 
    title: "localisation", 
    icon: icon 
    }); 
    formMarker.setMap(map); 
    var latlngbounds = new google.maps.LatLngBounds(); 
    latlngbounds.extend(latLng); 
    map.fitBounds(latlngbounds); 
    map.panToBounds(latlngbounds); 
} 

正如你可以看到,使用addMarker功能時,我應提供由軌道控制器rendred經緯度值。 如何將值從rails傳遞給Javascript?

+1

給人一種代碼示例會更有幫助。根據您的前端設置方式,您可能可以在控制器中傳入實例變量設置,然後通過類似onclick函數的方式將其傳遞到Google Maps API。我知道那裏也有幫助將數據傳遞給JS的寶石(對你的問題做一個類似的谷歌搜索)。此外,還有在控制器中傳回json的方法。 – someoneHere

回答

2
 app/controllers/some_controller.rb 
    def someMethod 
     @railsVariable = Model.all or Model.find(id) 
     end 
    in its view you can do something like this 

<script> 
    var JavascriptVariable = <%= @railsVariable %>; 
</script> 

希望這將幫助你:)

+0

對於那些出現同樣問題的人,我使用@ashwintastic提出的黑客技術,它運行良好。 – nizniz