なるようになるブログ

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

rails commit log流し読み(2018/10/31)

2018/10/31分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activerecord/CHANGELOG.md

activejob/CHANGELOG.md


Merge pull request #34314 from bf4/patch-2

actionpack/lib/action_controller/api.rbのdocの修正です。

ActionController::API classのdocに、API Controllerはcookies, sessionsが使用出来る旨説明があったのですが、実際は使用出来ないので該当部分を削除しています。


update_columns raises if the column is unknown

activemodel/lib/active_model/attribute.rbactiverecord/lib/active_record/persistence.rbの修正です。

update_columnsに存在しないカラムを指定した場合に、ActiveModel::MissingAttributeErrorをraiseするよう修正しています。

元々はRubyレベルではチェック出来ておらず、存在しないカラムを指定した場合、query実行時にエラー(no such columnでエラー)になっていました。

が、これだとignored_columnsに指定しているカラムも更新出来てしまう為、Rubyレベルで正しくチェックするよう修正しています。これにより、元々update_columnsignored_columnsに指定していたカラムも更新出来てしまっていたのが、更新出来なくなっています。


Fix failing test

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

先のupdate_columnsの修正で、updateクエリ実行前にattributeの割当を行うようになったのですが、それだと更新時に使用するidも変わってしまう可能性がある為、元のidを処理前に保持して、更新処理は同じidが使用されるよう修正しています。


Merge pull request #33972 from bogdanvlviv/follow-up-33897

activejob/lib/active_job/logging.rbの修正です。

enqueue_retry.active_jobで表示するエラーメッセージで、original exceptionが取得出来ない場合、original exceptionに関するメッセージを表示しないよう修正しています。


Update authorization.rb

actioncable/lib/action_cable/connection/authorization.rbのdocの修正です。

Authorization#reject_unauthorized_connectionメソッドのdocから不要なエスケープを削除しています。


Fix example for database-specific locking clause

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

ActiveRecord::Locking::Pessimistic moduleのdoc内、lockメソッドのexampleにDB固有のロック処理(FOR UPDATE NOWAIT)を使用するよう修正しています。

直前の説明でlockにはDB固有のロック処理を使用出来る旨説明しており、その説明と合わせる為。


Restore HWIA support to AJ::Arguments.deserialize

activejob/lib/active_job/arguments.rbの修正です。

ActiveJob::Arguments.deserializeメソッドにkeyがSymbolになっているHashWithIndifferentAccessを指定した場合に、keyが全てStringになってしまっていたのを、元の状態(keyがSymbolの場合はSymbol)を維持するよう修正しています。


Fix "warning: shadowing outer local variable - role"

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

warning: shadowing outer local variableのwarningが出ていたのを修正しています。