使用Rails存储查询结果的计算值

时间:2015-03-26 15:29:18

标签: ruby-on-rails postgresql postgis

我是铁杆新手,但我仍然觉得我应该知道答案。画一个完整的空白。

我有以下查询返回预期结果。但是我想要通过返回来存储它们正在计算的计算值。

提取此值的最佳方法是什么。

这是代码行

@service = Service.order("ST_Distance(services.lon_lat, ST_GeomFromText('POINT (lat lon)', 4326))").limit(10)

正如我所说它返回正确的结果,但我也想找到每个结果的距离

谢谢

1 个答案:

答案 0 :(得分:1)

试试这个:

@services = Service.select("*, ST_Distance(services.lon_lat, ST_GeomFromText('POINT (lat lon)', 4326)) as st_distance").order("st_distance").limit(10)

你在@services中得到的对象(注意我将其改为复数以符合约定)应该有一个额外的方法.st_distance,这就是我设置该函数的结果使用as st_distance

调用