我有一个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
感谢小费。任何想法如何创建'加入'? –