Rails gurus: Acabo de descubrir named_scope
gracias a otro usuario de SO. :)Usando named_scope para obtener el recuento de filas
Me gustaría obtener el recuento de un conjunto de filas, es decir, un SELECT COUNT(*)
. Además, quiero poder encadenar ámbitos con nombre en la llamada.
¿Es esto un uso legítimo (aunque extraño) del alcance designado?
named_scope :count, :select => "COUNT(*) as count_all"
Entonces me puede hacer (por ejemplo): se accede
@foobar = Foobar.count.scope.scope.scope
El recuento a través de @foobar.first.count_all
.
(Editado para tratar los comentarios de Allan)
que podría hacer:
@foobar = Foobar.scope.scope.scope.size
Pero esto causaría una consulta resultado y no el más rápido SELECT COUNT(*)
consulta. Tengo una gran cantidad de filas en la base de datos que estoy consultando.
¿Hay una mejor manera de hacerlo?
Duh. A veces las cosas son tan sencillas que echo de menos lo obvio. ¡Gracias! – unknownuser
Corrígeme si estoy trabajando pero esto no parece funcionar si su alcance con nombre se ve así: def self.with_full_name select ("users. *, CONCAT (first_name, last_name) AS full_name") final –