2011-05-31 46 views
1

我有獲得2點的發現的結果的代碼:聚結2個find_bys的結果

結果1 = firstModel.find_by_id(ID1)

結果2 = secondModel.find_by_id(ID2)

allResults =結果1 &結果2#合併結果,刪除重複

#我相信find_by返回一個數組,但是,絕望的一點,我也試過,allResults = results1.merge(結果2)

然而,這兩個,我得到「未定義的方法」(「&」或‘合併’,分別)

我會很感激一些提示,爲什麼,謝謝。

+2

你爲什麼希望重複,如果這是兩個不同的模型? – 2011-05-31 20:45:28

+0

另外,http://stackoverflow.com/questions/2242042/array-merge-union – 2011-05-31 20:46:07

回答

4

我相信find_by返回一個數組,但是,絕望的一點,我也試過,allResults = results1.merge(results2)

但是,兩者都得到'未定義方法'(分別爲'&'或'merge')

find_by_id將返回單個對象而不是集合。

要返回集合,你可以做這樣的事情:

MyModel.find_all_by_name("hello world") 

然後你就可以做這樣的合併。

+0

謝謝大家 - 所有的幫助,和JIT響應給了我我需要的見解。 – Snips 2011-05-31 21:15:14

+0

如果它適合您,請提出答案。 – Zabba 2011-05-31 21:16:13

2

使用Rails 3,你可以做這樣的事情:

firstModel.where(:id => id1) | secondModel.where(:id => id2) 
# => [#<FirstModel id: 1, ....>, #<SecondModel id: 1, ....>]