いろいろとRails1.2系から2.0系へ移行した

インフラ整備のついでに件名通り自分で作って管理しているものに関してはRails2.0.3への移行を行った。

DHHが移行が大変にならないように多くの時間を費やしたと言っている様にけっこうすんなりとできた。

Rails1.2で開発していても、2.0でなくなるメソッドなどを使うとobsoleteの警告がでるので、その警告を出ないようにしておけば基本的に2.0への移行はすんなりできる。
逆に言うと警告が出るうちは2.0にすることはできない。(多分)

修正を要したのは以下の三つだけ。
ただしこれは自分の手元にあるものの場合で、いろいろプラグインを入れていたりすると2.0への対応状況を調べたりとか大変かもしれない。

  • ページネーション
  • フォームタグ
  • セッションの設定

ページネーション

ページネーターがプラグインになったので、プラグインを入れないと動かない。

will_paginatorがオススメらしいけど、コードに修正がけっこう発生しそうなのでclassic_paginatorを入れておいた。

ruby script/plugin install http://tools.assembla.com/svn/breakout/breakout/vendor/plugins/classic_pagination/

ちなみにこの他にも本体からプラグインに分離された機能がいくつかあるようだ。

フォームタグ

<%= form_tag(:action => "hogehoge") %>
  ...
<%= end_form_tag %>

と古い書き方で書いていた部分がちょっとだけ残っていたので以下のように修正。

<% form(:action => 'hogehoge') do %>
  ...
<% end %>

日ごろから警告を見つけたらなるべくすぐにつぶすようにしていてよかった。

セッションの設定

セッションストアがCookie Storeになったのでそのための設定をconfig/environment.rbに。

config.action_controller.session = { :session_key => "_hoge_session", :secret => "hogehogehogehogehogehogehogehogehoge-" }

それにしてもCookie Storeとはよく考えたもんだ。
Cookieにセッション情報入れたら改ざんされまくりじゃない?と一瞬思うが、ダイジェストの比較などで改ざん防止の対策はしてあるようだ。

参考

Ruby on Rails 2.0.1に対応 – idesaku blog

というわけで移行完了。
とは言え2.0系で何が変わったとか把握しきってないのでまたいろいろ勉強しないといけないんだろうな。