открытие массива в ruby ​​на рельсах консоли v. irb - PullRequest
0 голосов
/ 18 мая 2011

Я хочу сделать мой код немного более читабельным, вызвав #rando для любого массива и получить случайный элемент (rando, потому что метод rand () уже существует, и я не хочу, чтобы он был any путаница).

Итак, я открыл класс и написал метод:

class Array
    def rando
       self[ rand(length) ]
    end
end

Это кажется слишком простым.

Когда я открываю irb и набираюarr = %w(hi bye) и затем arr.rando Я получаю привет или пока.Это ожидается.Однако, в моей консоли рельсов, когда я делаю то же самое, я получаю ArgumentError: wrong number of arguments (1 for 0)

Я отслеживаю Array вверх по цепи рельсов и не могу понять это.Есть идеи?

FWIW, я использую рельсы 2.3.11 и ruby ​​1.8.7

1 Ответ

1 голос
/ 18 мая 2011

отлично работает в моем случае:

Loading development environment (Rails 3.0.3)
ruby-1.9.2-p180 :001 > class Array
ruby-1.9.2-p180 :002?>       def rando
ruby-1.9.2-p180 :003?>            self[ rand(length) ]
ruby-1.9.2-p180 :004?>         end
ruby-1.9.2-p180 :005?>   end
 => nil 
ruby-1.9.2-p180 :006 > arr = %w(hi bye)
 => ["hi", "bye"] 
ruby-1.9.2-p180 :007 > arr.rando
 => "bye"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...