在使用地理编码器附近的空的列阵

时间:2017-12-14 16:57:32

标签: ruby-on-rails ruby ruby-on-rails-5 geocoder

我正在使用geocoder。 我想靠近位置,但它返回一个空数组。

在数据库中得到这个:

"id": 5,
"name": "sogra2",
"lat": "-22.833575",
"long": "-43.312882",

这是我使用near coordenates的行动

def near
  @near = Test.near([-22.844279, -43.306174], 100, :units => :km)
  render json: @near
end

这是我的模特:

class Test < ApplicationRecord
  reverse_geocoded_by :lat, :long
end

发布查询

SELECT tests.*, (111.19492664455873 * ABS(tests.lat - -22.844279) *
0.7071067811865475) + (96.29763124613503 * ABS(tests.long - -43.306174) * 0.7071067811865475) AS distance, CASE WHEN (tests.lat >= -22.844279 AND tests.long >= -43.306174) THEN 45.0 WHEN (tests.lat < -22.844279 AND tests.long >= -43.306174) THEN 135.0 WHEN (tests.lat < -22.844279 AND tests.long < -43.306174) THEN 225.0 WHEN (tests.lat >= -22.844279 AND tests.long < -43.306174) THEN 315.0 END AS bearing FROM "tests" WHERE (tests.lat BETWEEN -23.74360060591873 AND
-21.94495739408127 AND tests.long BETWEEN -44.282039151718706 AND -42.33030884828129) ORDER BY distance ASC

它正在返回[]

Rails 5.1 API模式

1 个答案:

答案 0 :(得分:0)

你使用rails&gt; 4.1

  

Note on Rails 4.1 and Greater

     

由于ActiveRecord的计数方法发生了变化,因此在使用近距离范围时,您需要使用count(:all)显式计算所有列("*")。在没有参数的情况下使用near和调用count会在很多情况下导致异常。