I just ran into this issue, and I would actually call it a bug since it causes very unexpected behavior:
> User.count { |user| user.not_a_method! } => 10 So the block isn't even being evaluated. I'm fine if we don't delegate to Enumerable, but I would expect #count to at least raise an error if a block is given so people don't accidentally try to count with a predicate and get the wrong answer. On Friday, February 1, 2013 at 10:12:36 AM UTC-8, Matt Jones wrote: > > > On Jan 31, 2013, at 1:35 PM, Christian Romney wrote: > > > Hi all, > > > > I realize this behavior is by design, and in some respects the right > thing to do. It also pre-dates the addition of Enumerable#count. I'm > wondering, however, if it's possible/desirable to allow the caller to > access the Enumerable versions under certain conditions. I originally wrote > the up as an issue, but was informed this would be the better venue. I'm > linking to the original issue on Github because the syntax highlighting is > nice. > > > > https://github.com/rails/rails/issues/9132 > > In the example in the issue, wouldn't this work nearly as well: > > def incomplete_submissions > submissions.to_a.count(&:incomplete?) > end > > In short, if you want the Enumerable behavior, just ask for it... > > --Matt Jones > > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-core+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-core@googlegroups.com. Visit this group at https://groups.google.com/group/rubyonrails-core. For more options, visit https://groups.google.com/d/optout.