У меня сложный SQL-запрос, включающий 3 модели, которые создают виртуальные атрибуты, основанные на временных операциях ... В идеале, я хотел бы использовать методы ActiveRecord arel для генерации этого, чтобы он был лучше, но я понятия не имею, как.
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? Или raw sql - единственный способ делать такие сложные вещи?