Rails2.0に移行中

この間、iアプリ作ってたときに使ったサーバ側のアプリはRails2.0のRCで作ってみてたので、それほど問題なく動いてたみたい。それとは別に、今作りかけの別アプリは、Rails 1.2.6で作ってきたわけだが、これは意外とすんなりといかないが、多少いじればなんとか動いてるっぽい。
以下、自分がなんとかできた移行手順。

最初に

自分はやり忘れてましたが、なんつーか、本来は、移行前にdevelopment.logをしっかりみて、

DEPRECATION WARNING: end_form_tag is deprecated and will be removed from Rails 2.0 
 See http://www.rubyonrails.org/deprecation for details.

などと出ている部分を一通り修正しておくべきです。やっておかなければかなり面倒くさいですが、やり忘れた自分もなんとか移行できたっぽい。

Rails 2.0.1のインストール

当然ですが

gem update

とかでいけました。ただ、2.0.1のgemがオープンになった初日、activeresouce-2.0.1がダウンロードできなかったため、サーバが起動やらいろんなところでこけまくりました。今ならダウンロード可能なので、落としておきましょう。

config/environment.rbの編集

RAILS_GEM_VERSION = '1.2.6'

の行を

RAILS_GEM_VERSION = '2.0.1'

に修正

rake rails:update:configs

boot.rbが更新される。

セッション

config.action_controller.session_store = :active_record_store

コメントアウトを外してsessionをactive_recordで管理するか、controllerのsessionを指定している部分(デフォルトはapplication.rb)で、

session :session_key => '_{アプリ名}_session_id', :secret => '{適当にランダムな文字列でも}'

のように:secretを設定すればよいと思われる。

Action Mailer

ActionMailer::Base.server_settings={}

を使っている場合は

ActionMailer::Base.smtp_settings

その他

ここまでやったら大体、WEBrickとかMognrelが起動するところまではいくと思う。その後、おそらく500 Internal Errorが出まくると思う。logファイルを見ながら一つずつ解決してます。最初にやっておけばよかったと思うことばかり

  • @requestとか@paramsとかアウト
  • end_form_tagとかアウト
  • テンプレート中では@requestじゃなくてrequestでなければアウト
  • paginateもアウトwill_paginationかpaginating_findプラグインを使う

結局お昼から始めて今の時間までかかってしまった。


間違いあったら指摘おねがいします

paginateについてはこっちにまとめました