我有兩個數組。如果在一個數組對象在其他任何匹配的電子郵件屬性,我想建立一個數組的所有這些對象的..從兩個數組中拉出一個不匹配的對象
我在攻擊龍的嘗試:
CardReferral.all.map(&:email) - CardSignup.all.map(&:email)
,幾乎做什麼我需要!不幸的是,它只提供一個數組中的電子郵件。我想要整個對象。
我有兩個數組。如果在一個數組對象在其他任何匹配的電子郵件屬性,我想建立一個數組的所有這些對象的..從兩個數組中拉出一個不匹配的對象
我在攻擊龍的嘗試:
CardReferral.all.map(&:email) - CardSignup.all.map(&:email)
,幾乎做什麼我需要!不幸的是,它只提供一個數組中的電子郵件。我想要整個對象。
簡單的例子:
a = [:x, :y, :z]
b = [:a, :y, :b]
a.select { |e| ! b.include? e }
=> [:x, :z]
所以,我在你的情況猜測它會是這樣的:
CardReferral.all.select { |e| ! CardSignup.all.include? e.email }
或者,加入反饋:-) ......
t = CardSignup.all
CardReferral.all.reject { |e| t.include? e.email }
t = CardSignup.all.map(&:email)
result = CardReferral.all.reject { |i| t.include? i.email }
令人驚歎!謝謝! – Trip 2010-12-02 17:35:31
會在循環的每次迭代中調用CardSignup.all嗎?這不是沒有效率嗎? – 2010-12-02 22:36:17