Rails-гуру: я только что обнаружил named_scope
благодаря другому пользователю SO. :)
Я бы хотел получить количество наборов строк, т. Е. SELECT COUNT(*)
. Кроме того, я хочу по-прежнему иметь возможность связывать именованные области в вызове.
Является ли это законным (хотя и странным) использованием именованной области действия?
named_scope :count, :select => "COUNT(*) as count_all"
Итак, я могу сделать (например):
@foobar = Foobar.count.scope.scope.scope
Доступ к счету осуществляется через @foobar.first.count_all
.
(отредактировано с учетом комментариев Аллана)
Вы можете сделать:
@foobar = Foobar.scope.scope.scope.size
Но это вызовет запрос результата, а не более быстрый SELECT COUNT(*)
запрос. У меня есть большое количество строк в базе данных, к которой я обращаюсь.
Есть ли лучший способ сделать это?