Альтернативы использованию. Где в ассоциациях ActiveRecord?

Я использую, где драгоценный камень и не могу использовать .distanceфильтр для сбора коллекции записей без потери доступа к методу драгоценного камня .User.includes(:addresses).where("addresses.country = ?", "Poland").references(:addresses)

Я ищу обходное решение для запроса, например:

where

Существуют ли альтернативы использованию find_byв этой ситуации? Фильтрация записей на простом find(id)или, .distanceкажется, сохраняется find_by_sql, но я не знаю, как / если это можно использовать, когда условие находится в связанной модели.

ruby-on-rails,ruby,activerecord,

-1

Ответов: 2


0

Вы можете использовать Post . find_by_sql [ "SELECT title FROM posts WHERE author =? AND created>?" , Author_id , дата_начали ] «отно =» NOFOLLOW ">find_by_sql . Ниже приведен пример из связанных документов:

Geocoder

0

Когда вы смотрите на docs и github issue 1108 для gem, Geocoderпохоже, distnaceэто метод, а не область. Вы должны изменить свой код следующим образом:

Address.near(location).includes(:model).where(something).each do |address|
  address.distance
end 
рубин-на-рельсы, рубин, ActiveRecord,
Похожие вопросы