将查询转换为活动记录

要执行范围查询,我们遵循以下语法 – :

oms[:order_items].where(:internal_sla => 3..5) results in this query => #= 3) AND (`internal_sla`  

但是如何更改活动记录查询以给我这样的东西=> select internal_sla from order_items where (internal_sla=0) OR (internal_sla=10)

 .where("(internal_sla >= ? AND internal_sla <= ? OR internal_sla >= ? AND internal_sla <= ? )", 0, 3, 10, 15).pluck(:internal_sla) 

评论后更新

如果internal_sla是整数,您可以:

 .where(:internal_sla => (0..3).to_a + (10..15).to_a).pluck(:internal_sla) 

编辑:修正错字

这很有效

 oms[:order_items].where(:internal_sla => [0..3, 10..15])