我有一個複雜的SQL查詢涉及3個模型,創建基於時間操作的虛擬屬性...理想情況下,我想要使用ActiveRecord arel方法來生成這個更好,但我不知道如何。如何獲得這個複雜的查詢以使用ActiveRecord?
find_by_sql <<--sql
SELECT username, count(*) as records, AVG(time_taken) as time_taken
FROM (
SELECT TIMESTAMPDIFF(HOUR, posts.created_at, reports.created_at) as time_taken,
users.username as username
FROM reports, users, posts
WHERE reports.user_id = users.id AND
reports.post_id = posts.id
) AS dashboard_data # this name is unused, but apparently required
GROUP BY username
sql
有沒有辦法在ActiveRecord內做這樣的事情?或者,是原始的SQL做這種複雜的東西的唯一方法?