繁体   English   中英

将ruby变量传递给js代码

[英]Pass ruby variables to js code

我很好奇将Rails变量传递到javascript代码中的最佳方法是什么。 例如我在控制器中有这行:

@address = get_user_address
@farms = Farm.all

现在,我需要使用它来初始化我的Google地图,现在我将使用纯Javascript,并且可以确保这是丑陋的解决方案。 鉴于我有这样的事情

%script
  distance = []
  - @farms.each do |f|
    distance.push(['#{f.latitude}' + ',' + '#{f.longitude}' + ',' + '#{f.name}', #{f.distance_from(@address)}])
  distance.sort(sortMultiDimensional)
  user_coords = #{Geocoder.coordinates(@address)}

而谷歌地图则引发了轰动。 如何避免这种难看的ruby-in-javascript代码? 谢谢!

将变量放入渲染页面的HTML中,然后在执行时使用javascript从DOM读取它们。 这使您可以在单独的文件中编写JS,而不会因随机脚本变量而使文件混乱。

确保清理用户提供的变量。

%script
  distance = #{@farms.collect{|f| [f.latitude, f.longitude, f.name] }.inspect}
  distance.sort(sortMultiDimensional)
  user_coords = #{Geocoder.coordinates(@address)}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM