ATND Search をRails4にupdateしてみました。
versionup作業もこなれてきたせいか、作業自体はそれほど大変ではなかったです。
参考
・#400 What's New in Rails 4 - RailsCasts
・RailsDiff
・Ruby - Rails 4 で turbolinks をオフにする方法 - Qiita
・jQueryの.hover()メソッドを.on()で使うためには? | THE HAM MEDIA BLOG
手順
1.まずはRails3系の最新にupdate
1) GemfileのRailsのバージョンを上げる
2) bundle update rails
3) rake rails:update
差分を確認しながら更新します。
4) テストが通ることを確認
RailsDiff
これとか結構便利です。
2.Rails4にupdate
基本は、1と同じです。
asciicast の内容がベータ版なので、今回は参考程度にさらっと読んだだけ。
手順としては下記を行いました。
1) 新規Railsプロジェクトを作成して見比べながら各種ファイルを移行(Gemfileなど)
ちなみにatndesearchはRails4からGemになったactiveresourceを利用しているので
gem 'activeresource', :require => 'active_resource'
Gemfileに追加が必要。
tourbolinkは不要なのでbundleから削除しています。
2) bundle update rails
3) rake rails:update
差分を確認しながら更新します。
4) scriptディレクトリが不要なので手動で削除
5) テストが通ることを確認
3. pluginの更新
1) bundle update
2) 各種修正
3) テストが通ることを確認
Railsあんまり関係ないですが
今回jQueryのバージョンが上がったことでdeprecatedなmethod(.live)の対応が必要でした。
jQueryの.hover()メソッドを.on()で使うためには? | THE HAM MEDIA BLOG
あと、calendar部分はevent_calendar
というのを使っているのですが
これのjQuery1.9対応ができていないので対応が必要です。
rails generate event_calendar --jquery
をした後、public下のjsとcssをassets下に移行して
Adding jQuery 1.9 compatibility by terrell · Pull Request #82 · elevation/event_calendar
の対応を入れればOK。
(上でやった.liveを.onに変える対応です)
4.capistrano対応
以外と簡単やったなぁと思ってdeployするとエラーとなりました。
Upgrading to Rails 4 · capistrano/capistrano Wiki
ここに書かれている通りですが
manifest.ymlというファイルがあるようで
こいつをdeploy_root/assets_manifest.ymlとすればOKなようです。
$ find . -name "manifest.yml" ./shared/assets/manifest.yml $ mv ./shared/assets/manifest.yml ./assets_manifest.yml
これをやって無事終了。