I wish to make my code a little more readable by calling #rando on any array and retrieve a random element (rando because a rand() method already exists and I don’t want there to be any confusion).
So I opened up the class and wrote a method:
class Array
def rando
self[ rand(length) ]
end
end
This seems far too straightforward.
When I open up irb, and type arr = %w(hi bye) and then arr.rando I get either hi or bye back. That’s expected. However, in my rails console, when I do the same thing, I get ArgumentError: wrong number of arguments (1 for 0)
I’ve been tracing Array up the rails chain and can’t figure it out. Any idea?
FWIW, I’m using rails 2.3.11 and ruby 1.8.7
Works fine in my case :