Иногда лучший способ сделать это хитро, основываясь на формате и свойствах ваших данных. Но в целом вы можете использовать :group
аргумент ActiveRecord # find .
Model.all(:select => 'COUNT(*) AS count, name, date, location, status', :group => 'name')
Или при использовании Rails 3
Model.all.select('COUNT(*) AS count, name, date, location, status').group('name')
Если вы всегда собираетесь группировать данные на основе этого отношения, рассмотрите возможность добавления их в качестве области по умолчанию для вашей модели.
class Model < ActiveRecord::Base
default_scope select('COUNT(*) AS count, name, date, location, status')
default_scope group('name')
end