我想減少我的應用程序查詢的數量和需要一些幫助,下面的設置:簡化Rails的查詢
我有5款車型:
- 投注
- 選擇
- Spotprice
- Spotarea
- 產品
它們與以下有關:
- 投注belongs_to的選擇
- 選擇belongs_to的Spotarea
- 選擇belongs_to的產品
- 選擇的has_many投注
- Spotprice belongs_to的Spotarea
- Spotprice belongs_to的產品
- Spotarea has_many Spotprices 個
- Spotarea的has_many選擇
- 產品的has_many Sprotprices
- 產品的has_many選擇
我的目標是找到匹配的BET比的Spotprices。要做到這一點,我使用了以下查詢,但我相信它可以以更好的方式完成,所以當我通過100次投注並想要查看它們是否高於或低於corrosponding Spotprice時,我不會超載數據庫與查詢。
a = Bet.find(5)
b = Choice.find(a.choice_id)
c = Spotprice.where(:spotarea_id => b.spotarea_id, :product_id => b.product_id,
:deliverydate => b.deliverydate).first
謝謝!
:包括做一個單獨的查詢和紅寶石連接。使用:連接來實現真正的連接 – rewritten
這並非完全正確。它有時會做一個額外的查詢,有時不會。 – weexpectedTHIS