なるようになるブログ

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

rails commit log流し読み(2018/12/01)

2018/12/01分のコミットです。

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

activerecord/CHANGELOG.md


Merge pull request #34505 from eileencodes/add-readonly-mode

Active Recordの修正です。

DBへのwrite処理をブロックする為の機能を追加しています。

write処理がreplicaに行われた場合、または、while_preventing_writesメソッドのblock内でwrite処理を行おうとした場合、ActiveRecord::StatementInvalidがraiseされるようになっています。

ActiveRecord::Base.connection.while_preventing_writes { User.create! }
# => ActiveRecord::StatementInvalid (Write query attempted while in readonly mode: BEGIN)

write処理かどうかについては、各adapter毎にread query(Postgres adapterの場合はselect, show, set)を定義して、それ以外のqueryは全てwriteとみなすようになっています。


Merge pull request #34576 from ys/test-upload-extra-keys

activestorage/test/service/shared_service_tests.rbの修正です。

各serviceにcontent_typefilename等のkeyを明示的に渡した場合のテストを追加しています。


Merge pull request #33882 from mberlanda/mberlanda/as-inheritable-options-intialization

railties/lib/rails/application.rbの修正です。

config_forメソッドでconfigの管理にActiveSupport::InheritableOptionsを使用していたのを、ActiveSupport::OrderedOptionsを使用するよう修正、及び、初期化処理に誤りがあり、ファイルから読み込んだ値が正しく使用出来ないバグがあったのを修正しています。


Clarify no support for non PK id columns

activerecord/lib/active_record/attribute_methods/primary_key.rbのdoc、及び、rails guideのActive Record Basicsの修正です。

id系のメソッドのdocに、設定や返す値はprimary key columnの値である旨説明を追加、及び、guideにActive Recordではidという名前でprimary keyでないカラムはサポートしていない旨説明を追加しています。


metadata is not passed to service

activestorage/test/service/shared_service_tests.rbの修正です。

先で追加された各serviceにcontent_typefilename等のkeyを明示的に渡した場合のテストで、サポートしていないkeyが指定されていたのを削除しています。


Merge pull request #34579 from gmcgibbon/yield_in_with_delivery_job

actionmailer/test/parameterized_test.rbの修正です。

with_delivery_jobでblockの実行(jobの実行)が不足していたのを追加しています。


fix example code syntax [ci skip]

rails guideのActive Storage Overviewの修正です。

Integrating with Libraries or Frameworksの項にあるdirect uploadのexampleコードで、シンタックスエラーになってしまう箇所があったのを修正しています。