May*_*nkS 7 activerecord ruby-on-rails
我需要ActiveRecord::Relation
以这样的方式得到两个对象的并集,结果应该是另一个活动的记录关系.我怎么能做到这一点?
Rails的更新5
ActiveRecord
现在为UNION
/ OR
queries 提供内置支持!现在你可以(以下示例是从这篇不错的帖子中获取的.确保你阅读完整帖子了解更多技巧和限制):
Post.where(id: 1).or(Post.where(title: 'Learn Rails'))
Run Code Online (Sandbox Code Playgroud)
或结合having
:
posts.having('id > 3').or(posts.having('title like "Hi%"'))
Run Code Online (Sandbox Code Playgroud)
甚至与范围混合:
Post.contains_blog_keyword.or(Post.where('id > 3'))
Run Code Online (Sandbox Code Playgroud)
原始答案如下
我认为AR不提供联合方法.您可以执行原始SQL并使用SQL的UNION或执行2个不同的查询,并将结果合并到Rails中.
或者你可以看一下这些自定义的"hacks": ActiveRecord Query Union或 https://coderwall.com/p/9hohaa