存储查询结果排序依据的计算值 Rails
Storing value of calculation that query result is being ordered by with Rails
我是 rails 的新手,但我仍然觉得我应该知道这个问题的答案。绘制一个完整的空白。
我有以下查询returns预期的结果。但是我还想存储它们按 returns.
排序的计算值
提取此值的最佳方法是什么。
这是代码行
@service = Service.order("ST_Distance(services.lon_lat, ST_GeomFromText('POINT (lat lon)', 4326))").limit(10)
正如我所说 returns 正确的结果,但我还想找出每个结果的距离
谢谢
试试这个:
@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
调用
我是 rails 的新手,但我仍然觉得我应该知道这个问题的答案。绘制一个完整的空白。
我有以下查询returns预期的结果。但是我还想存储它们按 returns.
排序的计算值提取此值的最佳方法是什么。
这是代码行
@service = Service.order("ST_Distance(services.lon_lat, ST_GeomFromText('POINT (lat lon)', 4326))").limit(10)
正如我所说 returns 正确的结果,但我还想找出每个结果的距离
谢谢
试试这个:
@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