なるようになるブログ

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

rails commit log流し読み(2018/07/19)j

2018/07/19分のコミットです。

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

actionview/CHANGELOG.md


Merge pull request #33358 from azbshiri/summer-time

activerecord/lib/active_record/connection_adapters/abstract/quoting.rbの修正です。

Quoting#quoted_timeでTime型の値を2000-01-01ノーマライズするよう修正しています。

TIME columnをSQLで検索する前にノーマライズしておかないと、Summer Timeが考慮された状態での値にならず、結果検索が正しく行われない為。


Merge pull request #31320 from gtqnchev/to_form_params-fix

actionview/lib/action_view/helpers/url_helper.rbの修正です。

button_toの引数にparamsを指定、かつ、paramsのkeyにHashとStringが両方含まれていた場合にArgumentErrorがraiseしてしまうバグがあったのを修正しています。


Revert "Merge pull request #33385 from lanzhiheng/add-example-for-has-and-belongs-to-many-association"

The has_and_belongs_to_many Associationの項に、 has-and-belongs-to-many associationを使用している場合にrecordを作成する方法についての説明を追加した、 Add example for has-and-belongs-to-many association. [ci skip]をrevertしています。

既に他の箇所で同様の説明がされている為。


Merge pull request #33363 from ahorek/transaction_bug

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

AbstractMysqlAdapter#with_multi_statementsメソッドで、MULTI STATEMENTSを使用する為に、Mysql2::Client::MULTI_STATEMENTSをconfigに指定してreconnect!するようにしていたのを、set_server_optionが使用出来る場合、set_server_optionを使用してOPTION_MULTI_STATEMENTS_ONを指定するようにしています。reconnectが発生してしまうのを避ける為。

set_server_optionが使用出来るかどうかチェックしているのは、set_server_optionが使えるのがmysql2 gem 0.5.0以降だけの為。

参考:Expose the `mysql_set_server_option`


Revert "Short circuit the scoping delegation for relation.all"

SpawnMethods moduleにspawnのaliasとしてallを定義した、Short circuit the scoping delegation for `relation.all`をRevertいています。

現在のscopeがunscoped blockの影響を受けている場合に、allspawnは同じ結果にならない為。


Clarify the ActiveStorage::Attachment#purge and #purge_later docs

activestorage/app/models/active_storage/attachment.rbのdocの修正です。

ActiveStorage::Attachment#purge、及び、ActiveStorage::Attachment#purge_laterメソッドのdocに、それぞれBlob#purgeBlob#purge_laterメソッドのdocへのリンクを追加しています。そっちのdocにより詳細な説明が記載されている為。


Link between ActiveStorage::Blob#purge, #purge_later, and #delete [ci skip]

activestorage/app/models/active_storage/blob.rbのdocの修正です。

ActiveStorage::Blob#purge#purge_later#deleteのdocに左記それぞれのメソッドへのリンクを追加しています。


Fix insert_fixtures_set to be restored original connection flags

activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rbactiverecord/lib/active_record/connection_adapters/mysql/database_statements.rbの修正です。

set_server_optionを使用するよう修正したMerge pull request #33363 from ahorek/transaction_bugの対応で、connection flagsがArrayだった場合にエラーになる、set_server_optionが使えない場合にconnection flagsが元の値に復元されない、というリグレッションが発生していたのを修正しています。


Avoid extra scoping in delegating to klass methods in the scope block

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

scope blockの中でunscopedを実行した場合に、そのunscoped block内のクラスメソッドがunscopeされた状態にならないバグがあったのを修正しています。


Merge pull request #33391 from utilum/method_call_assertions_instead_of_mocha

Active Recordのテストの修正です。

mock処理に、mochaを使用していたのを、テスト用のヘルパーメソッド(assert_called_withassert_called)を使用するよう修正しています。