Rails 3.2系のRubyを2.0にアップデートするとエラー

※ 2013/10/17 追記

解決しました。

続・Rails 3.2系のRubyを2.0にアップデートするとエラー(解決編) | CreativeStyle

追記終わり

仕事で開発しているRailsアプリをRails 4 + Ruby 2系にアップデートしようと考えていて、その最初のステップとしてRubyのバージョンを2系にアップデートしたらトラブル発生。パッと原因がわからなかったので、とりあえずメモしとこうと思います。

アップデート前の環境

  • Ruby 1.9.3-p327
  • Rails 3.2.14

アップデート後の環境

  • Ruby 2.0.0-p247
  • Rails 3.2.14

発生したトラブル

アップデート後にサービスにアクセスすると「500」エラーが発生。ログを見るとこんなのが出力されていました。

どのアクションにアクセスしてもNoMethodError (undefined method `empty?’ for nil:NilClass):が発生する状態です。

すべてのサーバで問題が発生するわけではない

困ったのが、上述のエラーがすべてのサーバで発生するわけではないということ。つまり、正常にアップデートできたサーバもあるんですよね。

まだ詳しく調べてはないのですが、うまく動作するサーバとそうでないサーバの環境の間に何か差があるってことだと思うんですよね。こういう時にChefなんかを使って、サーバ構築を自動化しておくことの重要性を感じますね。

もし、同じ問題にぶつかったことがある方がいらっしゃいましたら、対処法を教えていただけると助かります!

それではー。