0

我有两个模型:ProductLocation

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
4

1 回答 1

1

我不知道地理编码器方法是否返回 AR,但我们假设它没有。

location_ids = Location.near("Paris").collect do |location|
  location.id
end

paris_products = Product.where(location_id: location_ids)
于 2013-10-15T07:15:57.953 回答