2010-12-02 74 views
4

剛剛發現這個比較實際上是區分大小寫的。任何人都知道以不區分大小寫的方式來完成相同的比較嗎?Ruby:區分大小寫的數組比較

CardReferral.all.map(&:email) - CardSignup.all.map(&:email) 

回答

9

我不認爲有一個像減號來的任何「直接」的方式,但如果你不介意在小寫所有的結果,你可以這樣做:

CardReferral.all.map(&:email).map(&:downcase) - CardSignup.all.map(&:email).map(&:downcase) 

否則,你將不得不使用find_allreject手工做的比較:

signups = CardSignup.all.map(&:email).map(&:downcase) 
referrals = CardReferral.all.map(&:email).reject { |e| signups.include?(e.downcase) } 

我建議閱讀Ruby的標準類型的引用可能會幫助你拿出合作德這樣。例如,「Programming Ruby 1.9」具有從第487頁開始解釋的Enumerable對象的所有方法(find_all位於第489頁)。

+0

啊偉大的一點!歡迎來到SO – Trip 2010-12-02 20:29:07