2017-12-14 10 views
0

私はgeocoderを使用しています。 私は近くの場所に行きたいですが、空の配列を返しています。ジオコーダを使用している近くの空の配列

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

これは近く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モードに

+0

上記のSQLを実行するとどうなりますか? (つまり、ルビーバージョンではなく、データベース内のバージョン) –

+0

@TarynEast私はSQLiteを使用しています...どうすればテストできますか? –

+0

ダンノー - 私はポストグルを使っています...確かにそれはあなたがグーグルにできるものです:) –

答えて

0

を返すだあなたは、レール> 4.1を使用していますか? Note on Rails 4.1 and Greater

ためのActiveRecordのカウント方法の変更にあなたは近くのスコープを使用している場合、明示的にすべての列("*")をカウントするcount(:all)を使用する必要があります。 nearおよびcall countを引数なしで使用すると、多くの場合例外が発生します。

+0

はい。 Raios 5.1 APIモード –

関連する問題