在ActiveRecord中断开

是否可以使用ActiveRecord named_scope来创建一个带有sql OR子句的查询?

我用的时候

 Model.scope1.scope2 

生成的查询是这些范围的结合。

这不是命名范围的设计目的,但您可以将它们与一些额外的代码一起使用以获得所需的内容。

 def combine_scopes(model) (model.scope1 + model.scope2).uniq end 

或允许任何范围合并

 def combine_scopes(model, scope1, scope2) (model.send(scope1) + model.send(scope2)).uniq end 

你甚至可以改变它以允许任何数量的范围使用* args