【发布时间】:2012-03-26 21:11:57
【问题描述】:
我有一个非常简单的 Rails 应用程序和一个非常简单的关系数据库:类别有很多示例。我只想加载具有 X 个样本的类别。
在普通的 SQL 中,我会这样做:
SELECT
categories.*
FROM
categories
JOIN
(SELECT
category_id, COUNT(*) as sample_count
FROM
samples
GROUP BY
category_id
) AS subselect
ON
categories.id=subselect.category_id
WHERE
subselect.sample_count = X; -- where X is whatever
顺便说一句,这很好用,但使用原始 SQL 并不是很像 Rails。显然我想将这些类别作为模型实例,所以:
我将如何将类似的内容重写到 ActiveRecord 或 Arel 查询?这是否可行,或者我应该使用普通 SQL 吗?有没有更简单的方法?
【问题讨论】:
标签: ruby-on-rails activerecord arel