なるようになるブログ

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

rails commit log流し読み(2018/11/27)

2018/11/27分のコミットです。

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

activerecord/CHANGELOG.md


Merge pull request #34521 from azbshiri/mysql-exec-query-result

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

MySQL adapterでexec_queryの実行結果が空の場合にnilを返していたのを、結果が空の場合もActiveRecord::Resultを返すよう修正しています。他のadapterと挙動を合わせる為。


Merge pull request #34520 from yahonda/bump_pg93

Active Recordの修正です。

supportするPostgreSQLのバージョンを 9.3以上に修正しています。

9.2のEOLから1年以上(2017/09)経っており、もうサポートをしないで良いだろう、という事で修正しています。


Do not use deprecated Object#!~ in Ruby 2.6

activemodel/lib/active_model/validations/numericality.rbの修正です。

parse_raw_value_as_a_numberメソッドでObject#!~を使用していたのを、使用しないよう修正しています。Ruby 2.6でObject#=~がdeprecateになった為。

参考:Feature #15231: Remove `Object#=~`


Use env instead of headers on those tests

actionpack/test/dispatch/show_exceptions_test.rbの修正です。

ShowExceptionsのテストで値を指定するのにheadersを使用していたのをenvを使用するよう修正しています。

ShowExceptionsではrack envを使用している為、envを指定する方がより正確だろうという事で修正されています。


Convert ActionCable tests from CoffeeScript to ES2015 and replace Blade with Karma and Rollup (#34440)

Action CableのtestファイルをES2105に変換、及び、テストの実行をKarma + Rollupで行うよう修正しています。


Mutable helper is in ActiveModel

Active Recordの修正です。

Type::Helpers::Mutableをincludeする際に、完全修飾名(ActiveModel::Type::Helpers::Mutable)を使用するよう修正しています。


Revert "We still need the Helpers constant in the ActiveRecord namespace"

ActiveModel::Type::HelpersHelpersとして定義した、We still need the Helpers constant in the ActiveRecord namespaceをrevertしています。

先のType::Helpersを完全修飾名で指定するようにした対応により不要になった為。


Merge pull request #34480 from tekin/configurable-implicit-ordering-column

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

firstlastのようなordered finder methodsでorderに使用するカラムがprimary key固定だったのが、任意のカラムを指定出来るよう修正しています。

class User < ActiveRecord::Base
  self.implicit_order_column = "created_at"
end
User.first
# =>User Load (0.2ms)  SELECT "users".* FROM "users" ORDER BY "users"."created_at" ASC LIMIT ?  [["LIMIT", 1]]

primary keyにUUIDのようなauto-incrementing integerじゃない値を使用している場合に、primary keyでorderされても結果は期待通りにならない(firstを使用しても最初の値は取得出来ない)為、そのような場合に任意のカラムでorder出来るようにする為に対応しています。


Cached columns_hash fields should be excluded from ResultSet#column_types

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

ignored columnに指定したカラムに対して、attributeを使用していた場合に、PostgreSQL adapterでのみattributeで指定したtypeのdeserialize処理が呼ばれないバグがあったのを修正しています。