2011-01-02 7 views
4

Ich habe einen Modellnamen Post. Wenn ich versuche, Post.count zu laufen, bekomme ich ein Ergebnis ohne ein Problem. Ich vermute jedoch, dass Ruby verwendet wird, um die Anzahl der zurückgegebenen Posts zu zählen.Post.count to_sql in Rails3?

Stattdessen möchte ich SQL verwenden, um die Anzahl der Posts zu zählen, da es viel schneller ist.

Die einzige Möglichkeit, die ich mit Arel erreicht habe, ist Post.select("COUNT(id)"). Gibt es keine Möglichkeit, einen count-Befehl auszuführen, ohne explizit select für das Modell aufzurufen? Danke!

SELECT COUNT(*) FROM "posts" 

Edit::

+2

Rubin nicht die Anzahl der Beiträge verwendet wird, zu zählen, ist die 'count' Methode folgt aus: http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html# Methode-I-Zählung –

Antwort

3

Wollen Sie das? :

Post.where(your_sql).count 

lesen here

12

Post.count sollte die Abfrage erzeugen Sie die durch einen Blick auf Ihre development.log Datei erzeugten Abfragen sehen.