Is it possible to use ActiveRecor开发者_开发百科d named_scopes to create one query with sql OR clauses?
When I use
Model.scope1.scope2
generated query is conjunction of these scopes.
I reply as this was the first google result for "active record disjunction".
With Rails 5+ you can do something like:
Model.scope1.or(Model.scope2)
For Rails 4.2.3+ there is a backport here.
Eric-Guo created a gem where-or adding or functionality to rails >= 
 4.2.3 also using his gem.
This isn't really what named scopes were designed to do, but you could probably use them with some additional code to get what you needed.
def combine_scopes(model)
  (model.scope1 + model.scope2).uniq
end
or allow any scopes to be combined
def combine_scopes(model, scope1, scope2)
  (model.send(scope1) + model.send(scope2)).uniq
end
you could even change that to allow any number of scopes using *args
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论