我想简化我对以下查询的处理方法。 (使用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方法来做到这一点,而不用查询创建多个循环。