Rails 5优化查询的友好方式

时间:2017-01-09 23:50:28

标签: ruby-on-rails

我想简化我对以下查询的处理方法。 (使用MySQL和Rails 5.0.1)

我有很多结果的前景。我想生成一个包含所有前景的最新更新结果的列表,其结果将在我的控制器中使用。

前景     has_many:结果

结果     has_one:Prospect

这适用于我的Propects模型

def self.last_results
  customer_ids=Result.where("results.disposition" => "appointment").where.not("results.event" => nil).distinct.pluck(:prospect_id)

  all=[]
  customer_ids.each { |c|
    last_result= self.includes(:prospect)
      .where("results.prospect_id" => c)
      .order("results.created_at ASC")
      .last
    all << last_result
  }
  return all
end

我认为必须有一个更简单的rails方法来做到这一点,而不用查询创建多个循环。

0 个答案:

没有答案