相关疑难解决方法(0)

Rails 3查询关联计数的条件

在带有mysql的Rails 3中,假设我有两个模型,Customers和Purchases,显然是购买belongs_to客户.我想找到2个或更多订单的所有客户.我可以简单地说:

Customer.includes(:purchases).all.select{|c| c.purchases.count > 2}
Run Code Online (Sandbox Code Playgroud)

但实际上,上面的行会查询Customer.all和Purchase.all的大小,然后在ruby中执行"select"类型处理.在一个大型数据库中,我更愿意避免在ruby中进行所有这些"选择"计算,并让mysql进行处理,只给我合格客户列表.这要快得多(因为mysql更多地调整了这一点)并且显着减少了数据库的带宽.

不幸的是,我无法用rails中的构建块(where,having,group等)来实现代码,以实现这一点,这些内容符合(psudo-code):

Customer.joins(:purchases).where("count(purchases) > 2").all
Run Code Online (Sandbox Code Playgroud)

我将满足于直接的MySql解决方案,尽管我更喜欢在优雅的rails框架中解决这个问题.

ruby mysql ruby-on-rails-3

31
推荐指数
2
解决办法
1万
查看次数

如何在 Rails 控制台中找到所有拥有超过 1 个帖子的用户

我想返回所有在 Rails 控制台中发表超过 1 个帖子的用户。

一个用户has_many :posts和一个帖子belongs_to :user

我已经搞乱了 where 方法,但我找不到任何东西。提前致谢!

ruby activerecord ruby-on-rails

-3
推荐指数
1
解决办法
956
查看次数