RubyとかCSVまわりで色々詰んだのでメモ.

借りたVPSのRubyでCSV処理したら改行が認識されてなくて意味不明なことになってたりおかしかったので,Rubyのバージョン確認したら1.8.7でした.これはいかんということでrvmを導入しようとしたのですが,コンパイルの段階で応答がなくなったため,あきらめて1.9系にアップデートすることにしました.
以下のページを参考にしました.

sudo apt-get -yV install ruby1.9.1-full
sudo apt-get -yV install rubygems

sudo gem install rubygems-update
sudo gem1.9.1 install rubygems-update
sudo /var/lib/gems/1.8/bin/update_rubygems
sudo /var/lib/gems/1.9.1/bin/update_rubygems
sudo gem update
sudo gem1.9.1 update

#update-alternativesでバージョン切り替え
sudo update-alternatives –install /usr/bin/ruby ruby /usr/bin/ruby1.8 0
sudo update-alternatives –install /usr/bin/ruby ruby /usr/bin/ruby1.9.1 1
sudo update-alternatives –config ruby

いざ
CSV.foreach(“hoge.csv”, ‘r’) do |row|…end
を実行してみたら,
/usr/lib/ruby/1.9.1/csv.rb:1198:in `delete’: can’t convert Symbol into String (TypeError)
とかいわれました.オプション全消ししたら動いたので,先輩にきいてみたら「1.9系からはoptionはHashになりました」とのこと.

Google先生にきいて一番上にあったページは事故の元だから上記を参照しろとのことでした.おかげで半日以上潰れましたがなんとか解決してよかったです.

コメントを残す

お手数ですが半角数字で計算結果を入力してください。 *