繁体   English   中英

Rails 3 gem'地理编码器'搜索功能和模型设计

[英]Rails 3 gem 'geocoder' search functionality and model design

我有一个关于地理编码器宝石的一般性问题,以及如何在导轨中设计我的模型以促进地理编码器的有用功能。

我有一个文章模型和Place模型。 文章将始终写在一个地方,所以一篇文章总是有一个place_id。 Place模型包含地点的地址以及地理编码器所需的:纬度和:经度列。

地理编码器有一个方法'nearbys',允许我找到一个给定地点附近的地方,例如@ place.nearbys将产生@place附近的地方集合。 这很好,但我希望能够找到最近写的所有文章,并写下附近的地方。

我只能想到两种方法。 将纬度和经度列添加到我的文章模型中,这样我就可以搜索@ articles.nearby。 这个解决方案的问题在于它似乎不是很好的模型设计,因为Place应该负责保持纬度和经度,而不是每篇关于该地方的文章。

如果你可以就我如何轻松实现这一点提出一些建议,那就太棒了,那就好了!

几个可能适合你的选择?

@places = Place.near(@search, @distance, :order => :distance)
@articles = Article.where("place_id IN (?)", @places).where("published_on > ?", 60.days.ago).limit(3 * @places.length)

懒惰从地方加载文章但限制结果

@place = Place.find(params[:id])
@place.nearbys(@distance).each do |place|
    place.articles.order("created_at desc").limit(3).each do |article|
        # ...
    end
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM