【发布时间】:2016-01-01 10:08:26
【问题描述】:
我正忙着清理我的代码,以便通过一些急切的加载使其更高效,我注意到我的代码在显示基于枚举值的对象计数时肯定是缓慢的。在我的代码中,我有:
Class SalesOpportunity < ActiveRecord::Base
default_scope { order('close_date ASC') }
belongs_to :user
belongs_to :company
enum pipeline_status: [ :prospect, :qualifying, :demonstrating, :negotiating, :closed_won, :closed_lost, :dormant ]
end
在我看来,我正在向用户展示销售过程中每个阶段的销售机会计数 - 在用户视图 (show.html.erb) 中使用以下内容:
@user.sales_opportunities.where(pipeline_status: 0).count
@user.sales_opportunities.where(pipeline_status: 1).count
... etc
我在销售流程的每个阶段都执行此操作,因此每次显示视图时都会将 7 个不同的 SQL 查询发送到数据库。我确信有一种方法可以将它抽象到控制器或模型本身,但我正在努力想出它。谁能推荐一种可以提高我性能的方法?
【问题讨论】:
标签: ruby-on-rails enums