2011-11-08 6 views
8

que estoy tratando de hacer lo siguiente instrucción SQL en rieles:Rails 3.1 - encuentro utilizando recuento y selecciono como

SELECT COUNT(downloads.title) AS total, downloads.title FROM `downloads` WHERE `downloads`.`member_id` = 60 Group by `downloads`.`title` 

escribí esto en los carriles de esta manera:

Download.where(:member_id => id).select("COUNT(downloads.title) AS total, downloads.title").group(:title) 

Si corro el consulta directamente desde el servidor sql el sql se ejecuta correctamente, pero si ejecuto la versión activerecord solo obtengo el título.

Pensé que esto podría deberse a attr_accessible, pero esto no parece haber hecho una diferencia.

¿Alguna idea?

+0

puede verificar la consulta SQL final con el método 'to_sql'. – Bohdan

+0

Gracias, ese es un método práctico, pero el sql de salida es el esperado, pero no puedo entender por qué no está incluido el total en el objeto generado. – Alex

Respuesta

16

¿Ha intentado llamar al método total en el objeto de recogida?
Esta información no se incluye en la salida para el objeto utilizando el método to_s, por lo que probablemente no lo veas, pero el valor total está ahí.

downloads = Download.where(:member_id => id).select("COUNT(downloads.title) AS total, downloads.title").group(:title) 
downloads.first.total 
+0

Gracias, se olvidó totalmente .inspect no devuelve todos los campos! – Alex

+0

Gracias. Es helful para mi –