Ruby on Rails 5.2のファイナル版が発表されました。来週の火曜日からは米国ピッツバーグで「Rails Conf 2018」が開催予定で、それに間に合わせたことになります。

Rails 5.2のおもな新機能は、Active Storageによるクラウドストレージ対応、キャッシュストアへのRedis対応、HTTP/2 Early Hints対応、DSLによるContent Security Policyの設定などです。

Rails 5.2のおもな機能

Rails 5.2の主な機能をそれぞれ簡単に紹介しましょう。

Active Storage

Active Storageは、Amazon S3やGoogle Cloud Storage、Microsoft Azure Storageのようなクラウドドストレージに対してファイルをアップロードし、それらのファイルのActive Recoredオブジェクトへの添付を容易にする機能です。

また、ミラーリング機能によって複数のクラウドストレージのあいだでファイルを同期することもできます。これによって高い冗長性などを実現可能です。

Redis Cache Store

Rails 5.2ではRedis Cashe Storeをビルトインした状態で提供されるため、Redisクライアントを追加するだけでRedisをキャッシュとして使えるようになります。

HTTP/2 Early Hints

奥一穂氏によって提案されたHTTPの新しいステータスコード「103 Early Hints」は、おおまかにいえばWebブラウザとWebサーバ間におけるHTTP通信の非同期性を高め、より高速にデータを転送するための仕様です。Rails 5.2では、このHTTPステータスに対応しました。

Rails 5.2のファイナル版を発表したブログ「Rails 5.2.0 FINAL: Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials」で、この有効性が次のように説明されてます。

This means we can automatically instruct the web server to send required style sheet and JavaScript assets early. Which means faster full page delivery, as who wouldn’t want that? これによって自動的にWebサーバに対してスタイルシートとJavaScriptを早期に送信するよう指示できます。つまり、より高速にページ全体が提供されるのです。これを望まない人などいるでしょうか？

Content Security Policy

Content Security Policyは、Webサイトの管理者がユーザーエージェント（Webブラウザ）に対してどのページからならリソースをダウンロードして良いかを設定することで、セキュリティを管理するHTTPの仕様です。これによってクロスサイトスクリプティング（XSS）といった脆弱性からWebサイトを守ることができます。

Rails 5.2では、このContent Security PolicyをDSLで設定できるようになりました。

関連記事