35
35

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ruby on Rails 4への移行でハマったポイント

Last updated at Posted at 2013-06-27

RoR4がリリースされたので、手持ちのプロジェクトを4.0.0にアップデートしてみた。
具体的な移行方法は、既にウェブ上に記事が沢山あるので実際にハマった点だけを記す。

簡単にまとめると

  1. まず3.2系の最新版で動くようにする -> Ruby 2.0で動かす -> Rails 4へのアップデート という手順をしっかりやったほうがいい。
  2. herokuで動かすにはいくつか設定が必要。ローカルでRubyとRailsのアップデートをしてから、最後にherokuにdeployしてあれ動かない、となると対応が面倒くさいので、ワンステップずつdeployして動作確認していったほうがいい。
  3. 他は割と公式ガイド通りでスムーズ。

まずは3.2系の最新版で動くようにする。

古いRailsでは、一見Ruby 2.0で動作しているように見えても部分的におかしな挙動をすることがある。これはアップデートの過程での動作確認を混乱させることになる。(そのせいで最初結構ハマった)

まず3.2系の最新版にアップデートを行っておく 。(2013年6月現在3.2.13で確認)

また、必要に応じて他のgemも最新版にしておいたほうがよい。

Ruby 2.0をインストール

開発マシンにRuby2.0をrvmでインストール。

一部マシンではopensslのバージョンが古かったため、途中でエラーがおきたが、brewで1.0.1eをインストール して解決。

heroku上にRuby 2.0を使う場合にはGemfileにruby "2.0.0"を追加すればOK。

Rails 4へアップデート

  • いくつか古いgemがrails 4で動かなかったので、先にアップデートした。delayed_joblazy_high_charts等。

実装の変更

一部実装をRoR 4用に変更する。
だいたい問題なかったが、下記の点で少しハマった。

herokuでCSS / JSが動かない

Production環境でアセット(CSS / JS)の配信が行われなくなった。
config.serve_static_assets = trueにして解決。

ajaxが動かない

jQueryのバージョンアップにともない、.liveが使えなくなっていた。
.onへ置き換える形で実装変更。

参考: http://myjquery.blog.fc2.com/blog-entry-14.html#removed-3

参考

35
35
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
35

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?