Продолжая в моих вопросах Mysql to Rails, как Rails пишет следующий запрос:
SELECT COUNT(searchTerm) AS percent, searches.*
FROM `searches`
WHERE `results` = 0 AND searchDate > DATE_SUB(CURDATE(), INTERVAL 7 DAY)
GROUP BY `searchTerm`
ORDER BY percent DESC, searchDate DESC
Я получил код ниже, но эта строка AND searchDate > DATE_SUB(CURDATE(), INTERVAL 7 DAY)
Понятия не имеюкак представлять в Rails или если это вообще возможно.
where("results = 0").group('searchTerm').count('searchTerm')
Я могу обойти это, выполнив find_by_sql, но хотел бы попытаться придерживаться 'The Rails Way'
Спасибо
Редактировать: У меня есть это внутри метода моего класса под названием Поиск, например:
def self.no_results
where("results = 0").group('searchTerm').count('searchTerm')
end
Edit2: Я должен был написать это так:
select("searches.*, COUNT(searchTerm) AS percent").where("results = 0 AND searchDate > DATE_SUB(CURDATE(), INTERVAL 7 DAY)" ).group("searchTerm").order("percent DESC, searchDate DESC")
Потому что использование "searchDate > ?", DATE_SUB(CURDATE(), INTERVAL 7 DAY)
приведет к синтаксической ошибке.