1

私はジオコーダの宝石とどのようにジオコーダの便利な機能を容易にするために、レールの私のモデルを設計することに関する一般的な質問のようなものを持っています。Railsの3宝石「ジオコーダ」検索機能とモデル設計

私はArticleモデル、および場所のモデルを持っています。記事は常に1つの場所について書かれているので、記事は常にplace_idを持ちます。 Placeモデルには、場所のアドレスと、ジオコーダーに必要な:緯度と:経度の列が含まれています。

ジオコーダはplace.nearbys @例えば、私は近くの指定された場所を、場所を見つけることができる方法「近くの空港が」場所近く@placeのコレクションをもたらすであろうがあります。それは素晴らしいことですが、私は最近書かれた記事をすべて見つけて、近くの場所について書いてみたいと思っています。

私はそれを行うには、2つの方法を考えることができます。 Articleモデルに緯度と経度の列を追加すると、articles.nearbyを検索できます。この解決策の問題は、場所を緯度と経度ではなく、場所について書かれたすべての記事を保持するための責任を負わなければならないので、それは、良いモデルの設計ではありませんようにそれが思われることです。

私はこれを簡単に達成できる方法についていくつかの提案をすることができれば、それは素晴らしいことですね、thatnks!あなたのために働くかもしれないオプションの

答えて

4

カップル?

@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 
+0

素晴らしい提案、感謝を制限します。私はそれを試してみます。 – botbot

関連する問題