Cette méthode permet d'économiser quelques lignes de code... Elle permet faire une série de tests dans une boucle et renvoie true uniquement si tous les tests sont à true. Un exemple vaut mieux que mille mots mal choisis !
par exemple vous avez besoin de savoir si tous les produits sont disponibles :
result = true
Product.find(:all).each{ |p|
result = (result and p.available)
}
Avec all? cela devient :
result = Product.find(:all).all? do |p|
p.available
end
Alors pas mal, hein ?