Это работает, если address и reverse_geocoded_by находятся в классе, который мне не нужен (широта и долгота исходят от остальных клиентов).
Чтобы найти все местоположения в пределах 5 миль
Locate.near([center.latitude, center.longitude], 5)
Схема
create_table :locate do |t|
t.integer :user_id
# t.string :address
t.float :latitude
t.float :longitude
t.timestamps
end
Класс модели
class Locate < ApplicationRecord
# reverse_geocoded_by :latitude, :longitude
# after_validation :reverse_geocode, unless: -> (obj) { obj.address.present? },
# if: -> (obj) { obj.latitude.present? and obj.latitude.present? and ( obj.latitude_changed? || obj.longitude_changed? ) }
end
Метод контроллера
def near
center = @user.locate
render json: Locate.near([center.latitude, center.longitude], 5, units: :km)
end
Ошибка:
NoMethodError (undefined method `near' for #Class:#):