请问一个关于Array的sample方法的问题

请教一下,我刚刚开始学习ruby,想使用 array的sample方法,
item = ["a","b","c","d"].sample
p items

但是运行的时候总是出现以下错误
undefined method `sample' for ["a", "b", "c", "d"]:Array (NoMethodError)

但是我在 irb上输入["a","b","c","d"].sample的时候可以正常执行。
为什么呢?需要require 什么文件才能用这个方法? 可是array的其他方法都可以正常使用呀.

我刚刚试过,没有问题
你确认,你是这样试的吗?

  1. irb可以用
  2. 立即创建一个tmp.rb文件里面写 [code="ruby"]item = ["a","b","c","d"].sample p items [/code]
  3. ruby tmp.rb

是这样吗?

这个方法是有的,在ruby1.9的array.c里,如果不是ruby1.9的话就会报错。

同意
查一下运行环境的ruby版本
[code="ruby"]
ruby-1.8.7-p352 :002 > %w('a','b').sample
NoMethodError: undefined method `sample' for ["'a','b'"]:Array
ruby-1.9.2-p290 :001 > %w('a','b').sample
=> "'a','b'"
[/code]

[code="ruby"]
ruby-1.9.2-p290 :002 > %w('a' 'b').sample
=> "'a'" [/code]
:cry: