Я хочу использовать подзапрос с ActiveRecord так:ActiveRecord Выберите с параметром Переплета
User.select(
'users.*,
(select sum(amount)
from subscriptions
where subscriptions.user_id = user.id
and created_at < ?) as amt)'
).order('amt')
Однако, на втором в последнюю строку, у меня есть проблема, которую я не могу понять, как привязать Time
параметр класса, так как метод ActiveRecord::Base
select
не принимает более одного параметра (строка sql). Что я делаю?
Не помешало бы использованию кэша готовых инструкций в адаптере db? Похоже, http://apidock.com/rails/ActiveRecord/Sanitization/ClassMethods/sanitize_sql_array просто интерполирует текущее значение в оператор. – qix