+1
A.joins(A.send(:sanitize_sql_for_conditions, ["LEFT JOIN bs ON as.id = bs.id AND bs.state in (?)", state_arr])
:sanitize_sql 新版本改名成了 sanitize_sql_for_conditions 然后他的调用者得是一个 ActiveRecord 的任意的继承者 不然会报错
undefined method 'abstract_class?' for Object:Class
然后就解决啦,谢谢
直接 where 的话,比如,用 A join B, 后面的 where 是对 B 进行过滤,所以 A 的记录也会变少,而我只想过滤 B,保留 A 的数据,用 left join
谢谢回答,若有的地方也利用了 A join B, 但不想过滤,这个会不通用吗