将SQL查询转换为ActiveRecord查询Ruby on Rails

将SQL查询转换为ActiveRecord查询Ruby on Rails,sql,ruby-on-rails,postgresql,activerecord,Sql,Ruby On Rails,Postgresql,Activerecord,我有一个sql查询 SELECT count(cast(created_at + interval '8h' AS date)), cast(created_at + interval '8h' AS date) AS request_date, count(*) AS request_count FROM api_logs WHERE api_key = '7bfe68e0-8b54-0137-f0f1-3311231232' AND cast(created_

我有一个sql查询

SELECT count(cast(created_at + interval '8h' AS date)),
       cast(created_at + interval '8h' AS date) AS request_date,
       count(*) AS request_count
FROM api_logs
WHERE api_key = '7bfe68e0-8b54-0137-f0f1-3311231232'
  AND cast(created_at + interval '8h' AS date) BETWEEN '2019-09-05' AND '2019-09-10'
GROUP BY request_date
ORDER BY request_date DESC;

我想将其转换为ActiveRecord查询,以便在Rails控制台中使用。

@Sebastian Palma的回答是正确的,但我遇到了一些小错误,我只是调整了一下以获得我想要的解决方案

 ApiLog
   .where(api_key: '7bfe68e0-8b54-0137-f0f1-3311231232')
   .where("CAST(created_at + interval '8h' AS date) BETWEEN '2019-09-05' AND '2019-09-10'")
   .select(
     "count(cast(created_at + interval '8h' AS date)),
      cast(created_at + interval '8h' AS date) AS request_date, 
      count(*) AS request_count"
   )
   .group(:request_date)
   .order("request_date desc")