きちんとテストを書いたRailsアプリを用意できたのでRubyのバージョンアップについて試してみました。Ruby 2.2.2を使って開発していたのですが、今はRuby 2.2.3が最新みたいなのでこのバージョンに切り替えてみたいと思います。
最新版のRubyをインストールするのはrbenvで簡単に実行できます。まずは次のコマンドでインストールできるバージョンを確認します。
rbenv install -l
もし最新のバージョンが表示されていない場合は、Ruby buildを更新すると表示されるみたいです。自分の環境ではまだインストールもしていなかったのでやり方を確認してインストールしました。
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
バージョンの確認ができたら、次のコマンドでRubyの最新版をインストールします。上手く行ったらrbenv globalコマンドでデフォルトバージョンに設定します。ruby -vで正しく設定できているか確認できたらOKです。
$ rbenv install 2.2.3 $ rbenv global 2.2.3 $ ruby -v
バージョン変更後に今まで動いていたRailsアプリを『rails s』コマンドで起動しようとするとエラーになります。
Gemfileで指定しているバージョンが古いのが原因です。
こんな感じで最新のバージョンに変更してあげると解決します。
Gemfileを変更したら、bundle installが必要です。実行してみたところエラーが発生しました。
The `bundle' command exists in these Ruby versions:
どうすればいいのかなと検索してみたところ、Qiitaで解決方法が紹介されていました。
次のコマンドで最新のbundlerをインストールすればいいみたいです。
$ gem install bundler
最新のbundlerをすると、bundle installを無事に実行できました。
準備ができたので、『rails s』コマンドを実行してみます。今度はエラーにならずに実行できました。Rubyの最新の2.2.3を利用できています。
ひとまず無事にRubyのバージョンを最新にすることができました。よく聞く話でバージョンアップを行うと今まで動いていたところが動かなくなっている可能性があるみたいです。既存部分に影響が無いかはテストを実行して確認します。
$ bundle exec rspec spec/
テストでエラーにならなければ基本的に大丈夫なのかなと思います。あとは実際に画面を動かしてみるのも大切みたいです。
最後にHerokuへのデプロイも確認してみました。
$ git push heroku master
きちんと最新バージョンでデプロイできているみたいです。ということでRubyのバージョンアップの流れはこんな感じでした。