Вы можете сделать это медленным способом:
YourModelClass.find(:all, :conditions => { :card_id => 5 }).count
или быстрым способом:
YourModelClass.count(:conditions => { :card_id => 5 })
Быстрый способ просто делает COUNT(*)
внутри базы данных, медленный путьизвлекает весь набор результатов из базы данных, превращает его в объекты и затем подсчитывает их.
Существует также современный способ Rails3 +:
YourModelClass.where(:card_id => 5).count
, который выполняет select count(*) from t where card_id = 5
внутрибаза данных. Не используйте это, хотя:
YourModelClass.count(:card_id => 5)
Это сделает select count(card_id = 5) from t
, и это совсем не то, что вы хотите.