Rails 4.2.0 にあげる作業をしましたが、アプリケーションの性質もあってか、あまり変更を必要としませんでした。
一応、やったことをメモしておきます。追加で何か見つかれば適宜追加します。
対象アプリケーション
- アップグレード前は Rails 4.1.8 だった
- 主に Angular.js の JSON API を提供するサーバサイドとして使っているだけ
foreigner がいると bin/rake db:migrate が死ぬ
Gemfile から外した。foreigner を使って書いた add_foreign_key はとりあえずそのまま動いた。
bin/rails s -d で動かしてるアプリに localhost 以外からアクセスできなくなってる
Rack の仕様変更でデフォルトの挙動が変わったので bin/rails s -d -b 0.0.0.0
とする必要があった。
Angular.js の XSRF トークン対応が動かなくなった
Angular.js の XSRF トークンのデフォルト仕様のリクエストヘッダをそのまま受け付けるコードを書いていたが、以下のように書き換えないと動作しなくなっていた。
# app/controllers/application_controller.rb
# In Rails 4.2 and above
def verified_request?
super || valid_authenticity_token?(session, request.headers['X-XSRF-TOKEN'])
end
# In Rails 4.1 and below
def verified_request?
super || form_authenticity_token == request.headers['X-XSRF-TOKEN']
end