Я бы посоветовал взглянуть на GeoRuby и пространственный_адаптер .Если вы не хотите загружать много данных из вашей базы данных, а затем самостоятельно выполнять сравнение расстояний, я бы посоветовал вам использовать PostgreSQL в качестве движка БД, поскольку он имеет отличную поддержку Geo / GIS.Объединение этих трех значений означает, что при условии, что вы можете передать объект GeoRuby в качестве @address, область видимости, примерно такая, как показано ниже, сделает нужную вам работу
scope :near lambda { |location, count| order("ST_Distance(geom_field_in_table, ST_GeomFromWKB(#{location.as_wkb}, -1))").limit(count) }