我有代码可以获得两个发现的结果:
results1 = firstModel.find_by_id(id1)
results2 = secondModel.find_by_id(id2)
allResults = results1& results2#合并结果,删除重复项
#我相信find_by会返回一个数组,但是,有点绝望,我也试过了,allResults = results1.merge(results2)
然而,两者兼而有之,我得到'未定义的方法'(分别为'&'或'merge')
我很感激为什么,谢谢。
答案 0 :(得分:4)
我相信find_by会返回一个数组,但是,有点绝望,我也试过了,allResults = results1.merge(results2)
然而,两者兼而有之,我得到'未定义的方法'(分别为'&'或'merge')
find_by_id
将返回单个对象,而不是集合。
要返回集合,您可以执行以下操作:
MyModel.find_all_by_name("hello world")
然后你可以对此进行合并。
答案 1 :(得分:2)
使用Rails 3,您可以执行以下操作:
firstModel.where(:id => id1) | secondModel.where(:id => id2)
# => [#<FirstModel id: 1, ....>, #<SecondModel id: 1, ....>]
答案 2 :(得分:1)
如果results1和results2是数组,那么:
allResults = (results1 + results2).uniq