我有一个模型位置,许多模型用它来存储地理类型信息。我正在使用https://github.com/alexreisner/geocoder根据位置过滤结果。我的问题是,如何在belongs_to位置调用.near方法。例如:
我有一个用户
class User < ActiveRecord::Base
belongs_to :location
end
位置:
class Location < ActiveRecord::Base
end
我通常会从那里加入位置和查询:
User.joins(:location).where('locations.country = ""')
问题是,我无法传递哈希或字符串,我需要从Location调用一个方法,比如
# Instead of calling .near on User, I need to on Location
User.joins(:location).near('Omaha, NE, US', 20)
我不确定如何做到这一点,或者是否有可能。感谢
答案 0 :(得分:0)
即使没有Location
到User
定义的关系,您也可以在Location
上使用User
加入查询,并获取用户的ID:
users_id = Location.join('INNER JOIN users ON users.location_id = locations.id').near('Omaha, NE, US', 20).pluck('users.id')
users = User.find(users_id)