2013-09-12 1 views
3

Я работаю с Geocoder gem и там упоминается этот фрагмент кода для поиска записей в пределах расстояния:Rails - как сделать геокодер «рядом» с условием «где»?

Venue.near('Omaha, NE, US', 20) 

Это работает хорошо, но мне нужно добавить еще одно условие. Это запрос, я в настоящее время используют:

Car.where('car.status = ? AND listings.sold IS ?', 1, nil).includes(:images, :user) 

И на этот запрос я пытаюсь добавить возле вызова, например:

Car.near('90013', 20).('car.status = ? AND listings.sold IS ?', 1, nil).includes(:images, :user) 

Но результат этого запроса просто nil.

Каков правильный способ объединения рядом с с , где состояние?

+0

добавить ближайший запрос, чтобы увидеть, что он делает – apneadiving

+0

Может ли быть так, что у вас действительно нет записей, соответствующих этому запросу? – kobaltz

+1

Хорошо, ребята, у меня была глупая ошибка. В любом случае - есть еще одна вещь - теперь поиск работает почти отлично, но если я настрою поиск с помощью ZIP-кода ** 90013 **, тогда будут найдены записи, где расстояние между ZIP-кодами составляет <20 миль, но не те с точным почтовым индексом - в этом случае игнорируются записи с почтовым индексом ** 90013 **. Зачем? – user984621

ответ

1
nearest_location = @company.work_groups.where("level = 1 AND wg_active = 1 AND address IS NOT NULL AND address <> ''").near(employee_location, @company.miles, :order => :distance).first 

Вот пример, где я использую драгоценный камень Geocoder и инструкцию where в той же строке кода. Надеюсь, что это помогает.