问题描述
|
我有获得两个结果的代码:
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