【发布时间】:2019-01-22 16:13:55
【问题描述】:
对于两个不同的 ActiveRecord 关系对象,有没有办法发出一个 SQL 查询来比较关系的计数?
例如。假设我有两个这样的 ActiveRecord::Relation 对象:
posts = Post.where().where().some_scope
users = User.where().some_other_scope.where().joins(:something)
要比较每个关系的计数,我必须发出两个 SQL 查询。
posts.count == users.count
# => SELECT COUNT(*) FROM posts WHERE... ;
# => SELECT COUNT(*) FROM users INNER JOIN ... WHERE... ;
我希望能够只发出一个查询。比如:
Post.select("COUNT(first) == COUNT(second) as are_equal"), posts, users).are_equal
【问题讨论】:
标签: ruby-on-rails rails-activerecord