2011-04-26 67 views
0

所以,我有以下的sql查詢,我用來從數據庫中拉出一些相關的信息。我想利用activerecord抽象來優化這個查詢的軌道應用程序。做這個的最好方式是什麼?對此查詢使用rails activerecord抽象的最佳方法是什麼?

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

我GUSS你的模型像這樣

class Subscription < ActiveRecord::Base 
    belongs_to :app 
end 

class App < ActiveRecord::Base 
    has_many :subscriptions 
end 

你可以改變應用程序添加一個名爲SUBSCRIPTIONS_COUNT使用acitverecord的counter_cache功能列,然後修改你的模型是這樣的:

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

和你可以查詢應用程序:

App.find(:all, :order => "subscriptions_count DESC") 
相關問題