我有一個Collection
類有很多硬幣。 我想選擇有兩個以上硬幣的集合。 目前,我沒有問題通過直接Ruby來做到這一點,但這是非常低效的。如何在Rails 3中加入表格和計數記錄?
我當前的代碼:
collections = Collection.all.select { |c| c.coins.count > 2 }
如何做到這一點通過joins
呼叫與阿雷爾?
謝謝!
我有一個Collection
類有很多硬幣。 我想選擇有兩個以上硬幣的集合。 目前,我沒有問題通過直接Ruby來做到這一點,但這是非常低效的。如何在Rails 3中加入表格和計數記錄?
我當前的代碼:
collections = Collection.all.select { |c| c.coins.count > 2 }
如何做到這一點通過joins
呼叫與阿雷爾?
謝謝!
要回答我的問題:
Collection.joins(:coins).group("coins.collection_id").having("count(coins.id) > 2")
帽尖到KJF誰問this similar question和krakover回答它。
添加counter_cache列並查詢它們。
謝謝。計數器緩存意味着在運行中保存計數記錄。鑑於我的藏品只包含2-5個硬幣,這不是問題,我寧願不在數據庫中存儲單獨的列。任何想法如何使用Rails 3編寫'連接'查詢? –
你不應該使用收集的類名......有幾個紅寶石建在需要集合結構(例如軌道模型集合),它可能發生,你忽略一些事情,導致意外的行爲.. – Lichtamberg
感謝小費。任何想法如何創建'加入'? –