私は3つのモデルを含む複雑なSQLクエリを持っており、時間操作に基づいて仮想属性を作成しています...理想的には、これを生成するために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は、このような複雑な作業を行う唯一の方法ですか?