Rails 4.1.0が出ていたので、このブログをアップグレードしてみました。
例によって、作業ログを残しておきます。
Riding Rails: Rails 4.1.0: Spring, Variants, Enums, Mailer previews, secrets.yml
http://weblog.rubyonrails.org/2014/4/8/Rails-4-1/
(1) GemfileのRailsのバージョンを4.1.0にする
(2) 以下のコマンドを実施。
bundle update
rake rails:update
- config/routes.rbはスキップ
- config/application.rbは特に変化が無かったのでスキップ
- (備忘録:4.0.2から4.0.4にアップグレードした時は少し変化があったので修正した記憶があります)
- config/environment.rbは上書き
- config/environments下のファイルは適宜マージ
- その他細々と上書き
- config/initializers/mime_types.rb
- config/initializers/session_store.rb
- config/secrets.ymlにsecret_token.rbの内容をコピーして、secret_token.rbを削除
注意点としては、セッションのシリアライズがRubyオブジェクトをMarshalする方式からjsonへのシリアライズに変更された関係か、私の環境では以下の様なエラーが出ました。
ActionView::Template::Error (795: unexpected token at {I"session_id:ETI"...
config/initializers/cookies_serializer.rbのcookies_serializerを:hybridにするとうまい具合にmigrateしてくれます。
(デフォルトは:jsonです。旧方式を使うなら:marshalを指定してください。)
Rails.application.config.action_dispatch.cookies_serializer = :hybrid
JSON方式に変更すると、DateTimeなどのようにセッションにRubyオブジェクトを含めていた場合に問題が出るかもしれないので注意する必要がありそうです。