У меня есть модель Location
, а у других моделей belongs_to :locatable, polymorphic: true
Итак, что-то вроде PlaceOfInterest
может выглядеть так:
class PlaceOfInterest < ApplicationRecord
belongs_to :user
has_one :location, as: :locatable
# how to do this part?
scope :within,
-> (latitude, longitude, radius_meters = 0) {
where(%{ST_Distance(lonlat, 'POINT(%f %f)') < %d} % [longitude, latitude, radius_meters]) # approx
}
end
Как я могуполучить lonlat
, который существует в Location
из PlaceOfInterest
, чтобы написать область действия :within
?