3
我有一個非常簡單的關係數據庫非常簡單的Rails應用程序:類別有很多樣本。我只想加載具有X個樣本的類別。將(稍微複雜的)原始SQL查詢翻譯成ActiveRecord/Arel?
在普通的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
這工作就好了,順便說一下,但它不是非常的Rails樣使用原始SQL。顯然我希望將這些類別作爲模型實例,因此:
我該如何去重寫類似ActiveRecord或Arel查詢的東西?它是否可行,還是應該使用純SQL?有沒有可能是一個完全簡單的方法呢?
啊,非常好,乾淨!我正在考慮爲類別添加'samples_count'列,但我不知道Rails有內置的邏輯來保持它最新(不知道我是如何錯過的)。不想自己寫這個,所以我沒有追求:) – Flambino 2012-03-26 21:42:51