2015-10-03 36 views
1

我使用的是Rails Geocoder Gem,Rails 4.2和MySqL。我想要檢測有多少行程與某些箱子兼容。Geocoder尋找經緯度字段,但他們不存在

遊記和箱子有這些領域:departure_addressdeparture_latdeparture_longarrival_addressarrival_latarrival_long

當我要檢查,如果旅行是一個盒子我嘗試此查詢兼容:

Travel.near([Box.last.departure_lat, Box.last.departure_long], 50) 

我知道這是隻考慮departure_address,而不是arrival_address但無論如何,它不工作,因爲地理編碼嘗試即使我稱之爲'dep_lat'等經度,也可以在'旅行'表中找到'緯度'字段。

我想解決這個問題,然後想想結合它與到達。謝謝!

回答

0

您需要向GeoCoder指定您不想使用其默認的latlon屬性名稱。

要做到這一點,下面的行添加到您的模型:

geocoded_by :departure_address, :latitude => :departure_lat, :longitude => :departure_lon # ActiveRecord 

你會爲你做抵達的客人一樣,但改變路線的名稱。

從文檔:

你不堅持使用經度和緯度數據庫列名(與ActiveRecord的)。例如:

geocoded_by:地址,:緯度=>:LAT,:經度=>:LON#ActiveRecord的

有關此的更多信息可以在地理編碼文檔的Model Configuration部分中找到。

+0

我沒有想到它,因爲我在我的模型中使用了一種特殊的方法,但它非常明顯!但非常感謝! –

相關問題