2018/01/09分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
activestorage/CHANGELOG.md
Merge pull request #31650 from rosa/master
activestorage/app/models/active_storage/blob.rb
の修正です。
Blob#service_url
でURLを生成する際に、filename
をメソッドの引数で指定出来るよう修正しています。
Fix attaching blobs to optimistically-locked records
activestorage/lib/active_storage/attached/macros.rb
の修正です。
attachment用のassociationを宣言する際に、inverse_of
オプションを指定するよう修正しています。
同一のインスタンスを参照出来るようにしておかないと、optimistic lockを使用しているmodelでのsave処理実行時にエラーになってしまう事がある為。
Work around Firefox's refusal to dispatch events on disabled elements. Fixes #31393
activestorage/app/javascript/activestorage/helpers.js
の修正です。
element.dispatchEvent
を実行する際に、try
句で囲むようにし、element.dispatchEvent
でエラーがおきても処理を継続するよう修正しています。
disabled elementsに対してdispatchEvent
メソッドを呼び出すとエラーになる、というバグ(?)がFirefoxにあり、その為のワークアラウンドとの事です。
activestorage/app/assets/javascripts/activestorage.js
の修正です。
activestorage.jsの再生成を行っています。先に行ったFirefox向けの修正を入れたJSを作成する為。
Add 'Referrer-Policy' header to default headers set
actionpack/lib/action_dispatch/railtie.rb
の修正です。
デフォルトで設定するheaderにReferrer-Policy
(値はstrict-origin-when-cross-origin
)を追加しています。
Change Active Storage destroy callbacks
activestorage/lib/active_storage/attached/macros.rb
の修正です。
attachmentsをpurgeする際、purge_later
メソッドを呼び出すのにbefore_destroy
callbackを使用していたのを、after_destroy_commit
callbackを使用するよう修正しています。
before_destroy
だと、ユーザがmodelに処理をabortするcallback(e.g. before_destroy { throw(:abort) }
)をmodelに定義していた場合に、attachmentは削除されないがblobは削除される、という状態になってしまう為、それを避ける為にafter_destroy_commit
を使用するようにしています。