我有兩個型號的ActiveRecord:聯盟 - 紅寶石
class M1< ActiveRecord::Base
end
class M2< ActiveRecord::Base
end
它們都具有相同的結構,他們有name
和date
和info
屬性。 我創建2個查詢:
m1s = M1.where(...)
m2s = M2.where(...)
現在我想他們工會的這種或那種方式。
所以我做簡單:
m_all=m1s + m2s
所以我有對象的數組:
[#<M1:0x007fffdcc14100
date: Fri, 15 Sep 2017,
name: "name1",
info: "blablablabla">,
#<M2:0x007fffdd492e08
date: Fri, 15 Sep 2017,
name: "name2",
info: "blabla"> ...
]
現在離這個數組,我需要選擇對象,其中 (date, name)
- 組合日期和名稱屬性是唯一的。換句話說,我不需要重複的對象,即具有相同date
和相同name
例如,如果我有3個記錄:
date="11.04.15" name="xxx" info =""
date="11.04.15" name="yyy" info =""
date="11.04.15" name="yyy" info = ""
應該只選擇前兩個他們,因爲第二和第三個具有相同的日期和名稱。
那麼我該怎麼做? 我試圖做這樣的,但沒有奏效:
m_all= m_all.uniq do |m|
[m[:date], m[:name]]
end
應該已經工作。你得到了什麼錯誤或結果? – SteveTurczyn
@ user2950593如果我正確地理解了你的目標,你應該只需要把m_all = m_all.uniq放進去呢? –
@SteveTurczyn結果是相同的數組前後具有相同數量的元素 – user2950593