Лучший способ использовать рельсы абстракции activerecord для этого запроса? - PullRequest
0 голосов
/ 26 апреля 2011

Итак, у меня есть следующий SQL-запрос, который я использую для извлечения некоторой соответствующей информации из базы данных. Я хочу использовать абстракции activerecord для оптимизации этого запроса для приложения rails. Каков наилучший способ сделать это?

select count(s.app_id) counters , app.name, app.app_id from subscriptions s, apps app where s.app_id = app.id group by s.app_id order by counters; 

1 Ответ

1 голос
/ 27 апреля 2011

Я думаю, вам нравятся такие модели

class Subscription < ActiveRecord::Base
  belongs_to :app
end

class App < ActiveRecord::Base
  has_many :subscriptions
end

Вы можете изменить приложения, добавить столбец с именем subscription_count, чтобы использовать функцию counter_cache acitverecord, а затем изменить свою модель следующим образом:

class App < ActiveRecord::Base
  has_many :subscriptions,:counter_cache => subscriptions_count
end

и вы можете запросить приложения:

App.find(:all, :order => "subscriptions_count DESC")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...