繁体   English   中英

利用Rails ActiveRecord抽象进行此查询的最佳方法?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM