2014-11-21 83 views
0

我正在用Leaflet开发一个Rails应用程序。我有型号与字段位置这是类型linestring。我希望能够点击地图,获取该地点的坐标并返回距离它一定距离的管道数量。我无法将坐标返回到Ruby。我意识到Ruby在Javascript之前被执行,所以我该怎么做呢? 这是我.js.erb文件中的函数:如何将javascript变量传递给嵌入式ruby?

function onMapClick(e) { 
     var sql = <%= Pipe.where{st_dwithin((location),ST_GeomFromText("POINT(#{e.latlng.lat} #{e.latlon.lon})", 4326), 3000)}.count.to_s %>; 
     map.openPopup(sql.toString(), e.latlng); 
    }; 

回答

1

为了从JavaScript传递数据,你必须让服务器Ajax调用

+0

你能告诉我一个例子?我需要将它返回到某处的json吗? – ivanacorovic 2014-11-21 04:46:05

+0

你也许可以在这里找到一些帮助http://stackoverflow.com/questions/7237720/jquery-post-to-rails – TGH 2014-11-21 04:47:06

+0

'函数onMapClick(e){ $ .ajax({url:“/ temps”, 键入:“POST”, data:{coordinates:{lat:e.latlon.lat,lon:e.latlon.lon}}, success:function(response){ } }); }; map.on('click',onMapClick);' 我讨厌不能在这里换新行:/对不起。我正在尝试这个,但是根本无法完成。 – ivanacorovic 2014-11-21 05:45:11