今天在项目遇到一个问题, 我要比对数据库里record的变化,用到了数组的find方法和select方法,以前没有注意两者的区别,今天记录下,以免犯错:

arr = [1,2,3,4]

  arr.find{|i| i%2 == 0 }
#=>2
arr.select{|i| i%2 == 0}
#=>[2, 4]

find返回满足条件的第一条记录,而select返回满足条件的全部记录。 要分情况应用不同的方法,否则会产生bug。