Rails 2.0.1への移行
以前作成したRails1.2.6用のコードをRails 2.0.1に移行した時の作業記録。1.2.6に移行してから実施したので、この作業はそれほど時間はかかなかった。
1. environment.rbでRAILS_GEM_VERSIONを2.0.Xに変更
RAILS_GEM_VERSION = '2.0.1' unless defined? RAILS_GEM_VERSION
この修正は次のrakeを実行する前に行う必要がある。(rakeがバージョンを参照するので)
rake rails:update
これにより、config/boot.rb、public/javascriptsディレクトリのJavascriptファイル、scriptディレクトリのスクリプトファイルが更新される。
3. セッションキーとシークレットの設定
以下のようにセッションキーとシークレットをconfig/environment.rbに追加する。どのように生成されるかは空のrailsプロジェクトを生成するとよくわかる。
Rails::Initializer.run do |config| ... config.action_controller.session = { :session_key => '_yourapp_session', :secret => '0192838746074358285ab981273b1123 ..... ' } ... end
4. application.rbのセッションキー
1.2.XまでのRailsではapplication.rbでセッションキーの設定を行っていたが、上記のようなRails.Initializer.runで設定するように変わったのでコメントアウトする。
# session :session_key => '_cathay_session_id'
代わりに、新しいRailsではCSRFのためにapplication.rbのデフォルトテンプレートが生成するコードをapplication.rbに反映させる。(ここでは入れておくだけ。必要に応じて設定する)
# Filters added to this controller apply to all controllers in the application. # Likewise, all the methods added will be available for all controllers. class ApplicationController < ActionController::Base helper :all # include all helpers, all the time # See ActionController::RequestForgeryProtection for details # Uncomment the :secret if you're not using the cookie session store protect_from_forgery # :secret => '852af24c2b356e52abc35dc3721d4ced' end
この段階でそのまま./script/serverなどで動作を確認できるはず。