

以下のコードを実行した時，  
game.rb:3: undefined method `table' for CSV:Class (NoMethodError)  
というようなエラーが出ます．

どうすればエラーの対処することができるでしょうか．  
rubyファイル（game.rb）

[code]

    require 'csv'
    
    csv = CSV.table('data.csv')
    
    time = csv[:time]  #ヘッダーを指定する場合
    
    puts time.class # => array
    puts time # => 10:00
              #    20:00
              #    03:00
    
    one = csv[1] #行を指定する場合
    puts one.class # => CSV::Row
    puts one # => 20:10,GOODNIGHT,miki
    puts one[:time] # => 20:10
    
[/code]

csvファイル（data.csv）

[code]

    time,text,user
    10:00,Hello,tarou
    20:10,GOODNIGHT,miki
    03:00,SINTYOKUDAME,se
    
[/code]


CC BY-SA 3.0
2015-10-15T14:09:25.983
17688
2015-10-15T22:49:39.457
2015-10-15T22:36:37.780
85
9505
question
ruby csv
Rubyで undefined method `table' for CSV:Class (NoMethodError) というエラーが発生する


コメントでやりとりされているとおり、Rubyのバージョンが古いのが原因です。  
質問のコードはRuby
1.9以上で動作しますが、1.9系もメンテナンスが終了しているので、最低でも2.0以上にアップデートした方がいいと思います。（現時点の最新版である2.2.3を使うのが理想的）

バージョンアップの方法ですが、最近ではrbenv（もしくはRVM）を使って任意のバージョンに切り替えられるようにするのが主流です。  
参考までにrbenvの公式ページをリンクしておきます。

<https://github.com/sstephenson/rbenv>

ネットを検索すると日本語の情報もたくさん見つかると思うので、それらを参考にして以下のように作業を進めてみてください。

  1. rbenvのインストール
  2. Ruby 2.2.3のインストール（rbenvを使用）
  3. rbenvでバージョンを切り替え、Ruby 2.2.3上でgame.rbを実行


CC BY-SA 3.0
2015-10-15T22:49:39.457
17699
2015-10-15T22:49:39.457
85
17688
answer