合并两个find_bys的结果

问题描述

| 我有获得两个结果的代码: results1 = firstModel.find_by_id(id1) results2 = secondModel.find_by_id(id2) allResults = results1&results2#合并结果,删除重复项 #我相信find_by返回一个数组,但出于绝望,我也尝试过allResults = results1.merge(results2) 但是,使用这两种方法,我都会得到\'undefined method \'(分别为\'&\'或\'merge \') 我希望您能得到一些提示,谢谢。     

解决方法

           我相信find_by返回一个数组,但出于绝望,我也尝试过allResults = results1.merge(results2)      但是,使用这两种方法,我都会得到\'undefined method \'(分别为\'&\'或\'merge \')
find_by_id
将返回单个对象而不是集合。 要返回集合,您可以执行以下操作:
MyModel.find_all_by_name(\"hello world\")
然后您可以对此进行合并。     ,        使用Rails 3,您可以执行以下操作:
firstModel.where(:id => id1) | secondModel.where(:id => id2)
# => [#<FirstModel id: 1,....>,#<SecondModel id: 1,....>]
    ,        如果results1和results2是数组,则:
allResults = (results1 + results2).uniq
文件:http://www.ruby-doc.org/core/classes/Array.html