У меня проблемы с тем, чтобы обернуться вокруг присоединения к столам.У меня есть отношения one_to_many между местоположениями и списками.Местоположения имеют долготу и широту, а также ее первичный ключ: почтовый индекс.В листингах есть заголовок и почтовый индекс.
Listing.where("title LIKE ?", "%#{params[:search2]}%")
Location.where(:lat => @min_lat..@max_lat, :lon => @min_lon..@max_lon)
Я бы хотел объединить эти два оператора, чтобы получить все листинги в пределах определенного диапазона почтового индекса, который определяется с помощью диапазона долготи широты.Я не могу понять, как сделать это в Ruby on Rails таким образом, чтобы мне не приходилось делать отдельные операции поиска SQL и проходить через данные в моем коде, чтобы найти правильные данные.
Редактировать Обновленокод:
@results=Location.joins(:listings).where(:listings => ["title LIKE ?", "%#{params[:search2]}%"], :locations => {:zipcode => params[:searchZip]})
Вывод SQL: SELECT "locations".* FROM "locations" INNER JOIN "listings" ON "listings"."location_id" = "locations"."zipcode" WHERE ("locations"."listings" IN ('title LIKE ?', '%fish%')) AND ("locations"."zipcode" = 44012)
Я не знаю, почему он делает "местоположения". "списки" (что дает ошибку) или где INидет от.