Rail2.3からRail3.0への移行

WEB+DB PRESS vol.58 を参考にやってみました。
割と簡単にできたのですが、AJAXのとこで嵌りました。

対応したwebサービス

atnd_search

screenshot
ついでに、検索結果をcookieに保持するように修正しました。

toolbox_search

screenshot

やりかたざっくり

1.新規railsプロジェクト作成
2.application.rbの内容をenvironment.rbへ
3.routes.rb修正
4.database.yml修正
5.ソースを移行

1.新規railsプロジェクト作成
$ rails new toolbox_search -T -J
  • T はtest下のファイルを作成しません。RSpec使う人用です。
  • J はJQuery使う人用です。

必要なgemをGemfileに書いてbundle installします。

$ bundle install


ここらへんも。

rails g jquery:install
rails g rspec:install
2.application.rbの内容をenvironment.rbへ

Rails3では、environment.rbの内容をapplication.rbへ書くようになりました。
記載内容はほぼ同じです。


Logger.new する場合は log_pathがdeprecateらしいので下記のようにする必要があります。

#Rail2
config.logger = Logger.new(config.log_path)

#Rails3
config.logger = Logger.new(config.paths.log.first)
3.routes.rb修正

書き方はかなりすっきりしました。
こちらを参考にさせていただきました。
Rails 3のroutesまとめ

4.database.yml修正

mysqlを使う場合は、mysql2をGemfileに書いて、databaes.ymlのadapterを変更する必要があります。

development:
  adapter: mysql2
5.ソースを移行
cd rails3_project
cp -rpf path/to/rails2/app .
cp -rpf path/to/rails2/db .
cp -rpf path/to/rails2/lib .
cp -rpf path/to/rails2/public .
cp -rpf path/to/rails2/script .

ActiveRecordらへんは変更が必要ですが
だいたい、そのまま動きます。

その他

・viewの<%を<%=にしたり
・viewのhを削除したり
・named_scopeをscopeにしたり
・script/runnerをrails runnerにしたり
rubyも合わせて1.9にしたので、マジックコメント入れたり
Ajaxの変更で今回はまりました。が、疲れたので後で書きます。