• A > B > C > D

      A.joins(b: { c: d }).where ABCD的任何字段不需要distinct
    
  • A > B < C > D

      A.joins(b { cs: d }).where 任何字段时需要distinct
    
  • 尽可能避免使用 B < C 情况

  • includes 默认为preload(不能继续where)

  • includes 在有where时等价于eager_load(left outer join)

  • includes 尽可能避免使用where