我有两个模型:Product
和Location
。
class Location
has_many :products
end
class Product
belongs_to :location
end
当我使用地理编码器gem时,我可以使用近距离范围,允许我选择特定地址周围的每个位置。类似的东西:
@locations_near_paris = Location.near("Paris")
现在,我想使用@locations_near_paris集合制作一系列与巴黎关系密切的产品。我怎么能这样做?
我做了以下,但我觉得这不是一个好习惯......
close_locations.each do |l|
unless l.products.nil?
l.products.each do |p|
close_products << p
end
end
end
答案 0 :(得分:1)
我不知道地理编码方法是否会返回AR,但我们假设它没有。
location_ids = Location.near("Paris").collect do |location|
location.id
end
paris_products = Product.where(location_id: location_ids)