0
我正在使用Geokit來查找距離某個位置最近的站點。代碼在驗證後運行。使用Geokit返回最近的記錄返回PG :: SyntaxError
這裏的選址模型:
class Location < ActiveRecord::Base
belongs_to :station
# Find nearest station after validation
after_validation :update_nearest_station
def update_nearest_station
nearest_station = Station.closest(:origin => [latitude,longitude])
update_attribute(:station_id, nearest_station.id)
end
end
和火車站模型:
class Station < ActiveRecord::Base
has_many :locations
acts_as_mappable :default_units => :km, :lat_column_name => :latitude, :lng_column_name => :longitude
end
當我運行的代碼或者通過編輯/添加一個新的位置,或通過我的種子數據,我得到以下錯誤:
ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR: syntax error at or near ")"
LINE 4: ... SIN(0.8992918053979032)*SIN(RADIANS(stations.latitude))))*)
^
: SELECT "stations".* FROM "stations" ORDER BY
(ACOS(least(1,COS(0.8992918053979032)*COS(-0.0014597933863680574)*COS(RADIANS(stations.latitude))*COS(RADIANS(stations.longitude))+
COS(0.8992918053979032)*SIN(-0.0014597933863680574)*COS(RADIANS(stations.latitude))*SIN(RADIANS(stations.longitude))+
SIN(0.8992918053979032)*SIN(RADIANS(stations.latitude))))*)
asc LIMIT 1
我已經嘗試了很多不同的方式使用Geokit的其他方法ds(例如within
與first
),但我似乎無法得到它的工作。
這是Geokit的錯誤還是我錯過了一些非常明顯的東西?