Ruby on rails 两个活动记录关系的并集应该是RubyonRails中的另一个活动记录
我需要得到两个Ruby on rails 两个活动记录关系的并集应该是RubyonRails中的另一个活动记录,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我需要得到两个ActiveRecord::Relation对象的并集,其结果应该是另一个活动记录关系。如何实现这一点?Rails 5的更新 ActiveRecord现在内置了对UNION/或查询的支持!现在您可以(以下示例按原样取自。请确保阅读全文了解更多技巧和限制): 或与具有以下特征的组合: posts.having('id > 3').or(posts.having('title like "Hi%"')) 甚至与作用域混合使用: Post.contains_blog_keywor
ActiveRecord::Relation
对象的并集,其结果应该是另一个活动记录关系。如何实现这一点?Rails 5的更新
ActiveRecord
现在内置了对UNION
/或查询的支持!现在您可以(以下示例按原样取自。请确保阅读全文了解更多技巧和限制):
或与具有以下特征的组合:
posts.having('id > 3').or(posts.having('title like "Hi%"'))
甚至与作用域混合使用:
Post.contains_blog_keyword.or(Post.where('id > 3'))
原始答案如下
我不认为AR提供了联合方法。您可以执行原始SQL并使用SQL的UNION,也可以执行两个不同的查询并在Rails中合并结果
或者,您可以查看这些自定义“黑客”:
或
“两条活动记录的并集”的意思是?我有两条活动记录用于同一型号,但记录不同。我想合并这两个活动记录,结果应该是另一个活动记录。这回答了你的问题吗?你必须给出一些代码,否则人们不知道如何帮助你。可能重复@rkon,你能提供一个如何“在Rails中合并结果”的示例吗?谢谢。他的意思是ruby
,将ruby
中的两个数组与union操作符|
Right@Volte进行联合,或者使用ActiveRecord::Relation
Post.contains_blog_keyword.or(Post.where('id > 3'))