У меня есть крайний случай, когда я хочу использовать .first
только после того, как мой запрос SQL был выполнен.
Мой случай следующий:
User.select("sum((type = 'foo')::int) as foo_count",
"sum((type = 'bar')::int) as bar_count")
.first
.yield_self { |r| r.bar_count / r.foo_count.to_f }
Однако это приведет к ошибке SQL, говорящей о том, что я должен включить свой user_id в предложение GROUP BY
.Я уже нашел хакерское решение с использованием to_a
, но мне действительно интересно, есть ли правильный способ принудительного выполнения перед моим вызовом .first
.