4
剛剛發現這個比較實際上是區分大小寫的。任何人都知道以不區分大小寫的方式來完成相同的比較嗎?Ruby:區分大小寫的數組比較
CardReferral.all.map(&:email) - CardSignup.all.map(&:email)
剛剛發現這個比較實際上是區分大小寫的。任何人都知道以不區分大小寫的方式來完成相同的比較嗎?Ruby:區分大小寫的數組比較
CardReferral.all.map(&:email) - CardSignup.all.map(&:email)
我不認爲有一個像減號來的任何「直接」的方式,但如果你不介意在小寫所有的結果,你可以這樣做:
CardReferral.all.map(&:email).map(&:downcase) - CardSignup.all.map(&:email).map(&:downcase)
否則,你將不得不使用find_all
或reject
手工做的比較:
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頁)。
啊偉大的一點!歡迎來到SO – Trip 2010-12-02 20:29:07