У меня есть активный запрос записи, который не использует индекс, что приводит к таймаутам приложений.Вручное создание объектов активной записи
domain.services.where.not(parent_service_id: nil).group('services.type').select('services.type, count(services.id) as user_count')
=> [#<ServiceModel id: nil, type: "ServiceModelName">]
У меня есть пользовательские команды SQL, которая заставляет использование индекса на parent_service_id
ActiveRecord::Base.connection.execute("SELECT services.type, count(services.id) as user_count FROM services where domain_id = 21227 AND parent_service_id IS NOT NULL GROUP BY services.type")
=> {"type"=>"ServiceModelName", "user_count"=>"2810"}
Который возвращает информацию, мне нужно быстро. Однако он возвращает хеш вместо модели. Как создать объект activerecord, чтобы мой метод мог возвращать аналогичный результат?
Показать SQL из журналов, которые производит первое утверждение. – smathy
это мое будет полезно для вас [http://m.onkey.org/use-index-with-active-record-finders](http://m.onkey.org/use-index-with-active-record -finders) –