[英]Best way to utilize rails activerecord abstractions for this query?
因此,我有以下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;
我請你這樣的模特
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")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.