优化两级深度关联计数查询

时间:2012-08-28 07:45:57

标签: mysql ruby-on-rails

我有一个访问模型如下

class Visit < ActiveRecord::Base
  belongs_to :engineer
  has_many :machines
end

我要做的是通过使用以下代码找到与特定工程师相关联的机器数量

count = engineer.visits.map(&:machines).flatten.size

有没有更好更快的方法呢?我不想在工程师和机器之间建立直接联系。

1 个答案:

答案 0 :(得分:0)

您可以使用加入,包含等模型关键字来查询。从一个模型中选择一条记录。

供参考http://archives.ryandaigle.com/articles/2008/7/7/what-s-new-in-edge-rails-easy-join-table-conditionshttp://railscasts.com/episodes/202-active-record-queries-in-rails-3