如何将Rails数据库数据转换为指定结构的JavaScript数组?
解决Rails数据转指定格式JS数组的问题
嘿,我懂你这种头疼的感觉——本来只想拿经纬度生成简洁的JS数组,结果to_json带出一堆没用的属性!咱们换个思路,先在Ruby层面把数据处理成你要的结构,再转JSON就准没错了。
方法一(推荐:控制器处理,视图更清爽)
先在你的Rails控制器里,把数据筛选并重组好:
# 这里假设你的模型叫Location,记得换成你实际的模型名 @locations = Location.pluck(:latitude, :longitude).map do |lat, lng| { lat: lat, lng: lng } end
pluck(:latitude, :longitude)会直接从数据库只提取经纬度两个字段,比查询整个模型实例要高效得多map方法把每一组经纬度转换成你需要的{lat: ..., lng: ...}哈希结构
然后在视图的JS代码里,直接序列化处理好的数据:
var locations = <%= raw @locations.to_json %>;
方法二(直接在视图处理)
如果不想改动控制器,也可以直接在视图里处理模型数据:
var locations = <%= raw @locations.map { |loc| { lat: loc.latitude, lng: loc.longitude } }.to_json %>;
这样生成的locations数组就完全是你想要的格式,不会再夹杂多余的属性啦~
内容的提问来源于stack exchange,提问作者user12192123
相关产品推荐
相关产品推荐

