なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2018/03/06)

2018/03/06分のコミットです。

CHANGELOGへの追加はありませんでした。


Generate root-relative paths in Active Storage disk service URL methods

Active Storageの修正です。

disk serviceでfileのURLを生成する際に、host名を含む絶対パスでURLを生成ていたのを、host名を含まない相対パスで生成するよう修正しています。

host名はconfigで指定出来るようになっていたのですが、それだと複数サブドメインを使用しているアプリの場合に問題になる為、host名はURLに含まないようにしたとの事です。


Fix that after commit callbacks on update does not triggered when optimistic locking is enabled

activerecord/lib/active_record/locking/optimistic.rbactiverecord/lib/active_record/persistence.rbの修正です。

optimistic lockingを使用している場合に、update処理後にafter commit callbackが実行されないバグがあったのを修正しています。


Correct the ActiveStorage::Service#download_chunk docs [ci skip]

activestorage/lib/active_storage/service.rbのdocの修正です。

ActiveStorage::Service#download_chunkメソッドのdocに記載されている引数が実際の引数と異なっていたのを修正しています。


Update skip_after_callbacks_if_terminated documentation

activesupport/lib/active_support/callbacks.rbのdocの修正です。

define_callbacksメソッドのdoc内、skip_after_callbacks_if_terminatedオプションについて説明している箇所にterminatorオプションが指定された場合のみterminate処理が行われる旨説明が記載されていたのですが、今はデフォルトでterminatorが指定されており、terminatorオプションが指定されなくてもterminate処理は実行される為、その旨説明を修正しています。


Delete dependent attachments with record

activestorage/lib/active_storage/attached/macros.rbの修正です。

recordを削除した際にattachmentsも削除されるよう、associationの定義にdependentオプションを追加しています。

が、これは直後のコミットで修正されています。


Fix purging dependent blobs when attachments aren't loaded

activestorage/lib/active_storage/attached/macros.rbactivestorage/lib/active_storage/attached/one.rbの修正です。

attachmentsをdependentで削除していたのをやめて、callbackで明示的にdetachを呼び出して削除するようにしています。

attachmentがロードされていない場合にも正しく削除されるようにする為、のようです。


whitelist NULLS { FIRST | LAST } in order clauses

activerecord/lib/active_record/attribute_methods.rbの修正です。

ORDERに指定できる安全なSQLホワイトリストにNULLS FIRST、及び、NULLS LASTを追加しています。asc / desc同様に、orderに普通に指定する事があるqueryの為。


Allow Capybara 3.x (#32151)

Gemfileactionpack/lib/action_dispatch/system_test_case.rbrailties/lib/rails/generators/rails/app/templates/Gemfile.ttの修正です。

System testで使用出来るCapybaraのバージョンが2系に固定されていたのを、3系も使用出来るよう修正しています。

Capybara 3.0.0のrc1が出た為。参考:https://github.com/teamcapybara/capybara/blob/master/History.md#version-300rc1


update comment to reflect new supported patterns [ci skip]

activerecord/lib/active_record/attribute_methods.rbのdocの修正です。

COLUMN_NAME_ORDER_WHITELIST定数についてのコメントに記載されているサポートしているパターンの一覧に、NULLS FIRST、NULLS LASTを使用した場合のパターンを追加しています。


Update Gemfile.lock to reflect Capybara 3.x

Gemfile.lockの修正です。

先のCapybara 3系を使用出来るようにした対応でGemfile.lockの更新が漏れていたのを修正しています。


Fix dependence on has_one/belongs_to relationships

activerecord/lib/active_record/associations/belongs_to_association.rbactiverecord/lib/active_record/associations/has_one_association.rbの修正です。

has_one / belongs_to associationを使用して、dependentdestroyを指定している場合、元々はassociationの削除結果をチェックしておらず、associationの削除に失敗しても自身の削除は実行されていました。

これを、associationの削除結果をチェックし、削除に失敗した場合、自身の削除処理を行わないよう修正しています。