Использование упаковщиков ActiveRecord для сложного запроса - PullRequest
0 голосов
/ 31 октября 2011

В моем приложении на Rails у меня есть следующий запрос PostgreSQL, чтобы найти самый прокомментированный рассказ за последнюю неделю.

 last_week = Date.today() - 7
 most_commented_comments = Comment.find_by_sql("SELECT story_id, COUNT(*) AS total FROM comments WHERE created_at >= (CAST '#{last_week}' AS date) GROUP BY story_id ORDER BY 2 DESC LIMIT #{limit}")

Я столкнулся с некоторыми проблемами кросс-платформенной совместимости, особенно с предложением created_at >=..., и я хотел бы сделать этот запрос менее хрупким в целом. Однако я не могу найти способ вписать такой сложный запрос в обертки ActiveRecord, предоставляемые Rails. Возможно ли это?

1 Ответ

0 голосов
/ 01 ноября 2011

Мне кажется, я нашел способ получше.

most_commented_comments = Comment.where("created_at >= ?", Date.today - 7).select("story_id, COUNT(*) as total").group("story_id").order("2 DESC").limit(limit)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...