我有一个模型Offer
。每个Offer
has_one Location
。我正在尝试使用Geocoder
gem方法near
来获取所有附近的Location
。该方法使用如下:
@nearby_locations = Location.near(address, 100, :order => :distance)
我不确定如何在每个Location
的相关位置替换Location.near()
中的Offer
。我可以使用Offer
访问每个@first_offer.location
对象的位置,但在整个near
表上调用Location
方法。如何将所有Offer.location
收集到一个数组中,以便我可以在它们上使用此方法?
提前致谢。我希望我有道理。如果没有,请发表评论。
答案 0 :(得分:1)
不确定我是否完全理解您的问题,但我会尽我所能回答。 offer.location
返回一个位置对象的集合,以便您可以迭代这些对象并在每个对象上调用near
方法:
offer.location.each do |location|
location.near
end
但是,我不认为这将适用于near
方法,因为它充当类级别范围。它不适用于个人记录。
Geocoder gem确实提供了可用于单个记录的其他方法,例如distance_from
。所以你可以这样做:
offer.location.each do |location|
location.distance_from([40.714,-100.234])
end
查看Geocoder docs以获取其他可用的方法调用。