Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 两个活动记录关系的并集应该是RubyonRails中的另一个活动记录_Ruby On Rails_Activerecord - Fatal编程技术网

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'))