なるようになるブログ

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

rails commit log流し読み(2023/02/24)

2023/02/24分のコミットです。

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

activerecord/CHANGELOG.md


Serialized attribute should be able to be defined in abstract classes

activerecord/lib/active_record/attribute_methods/serialization.rbactiverecord/lib/active_record/type/serialized.rbの修正です。

serializeメソッドで対象のDBカラムにデフォルト値が設定されている場合にそのデフォルト値の設定が出来ないバグがあったのを修正した、Respect Column default in Type::SerializedをRevertしています。アプリ起動中にまだアクセス出来ないcolumnの情報を参照するような変更になっており、実際のアプリケーションでは正しく動作しない為。


Create an ActionView::PathRegistry module

Action Viewの修正です。

ActionView::ViewPaths::Registry moduleをActonView::PathRegistry moduleにリネームしています。アプリケーションにRegistryという名前のclass/moduleがあった場合に名前がコンフリしてしまい予期せぬ挙動になってしまう為、もう少しコンフリしなそうな名前に変更しています。


Merge pull request #47484 from skipkayhil/suppress-mail-warnings-in-ci

mail gem起因のwarningが表示されないよう修正しています。


Stop serializing columns as YAML by default

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

columnのserializeに使われるserializerのデフォルトをYAML serializerから設定無しに変更しています。YAMLは性能とセキュリティ両方に問題がある為デフォルトとしてはよくないと思われる、しかし代替えとなるような処理が現状無い(JSONが現実的だが現在Railsで使用しているJSONのパーサはJSONとして不正なデータを生成するケースがある為不適切と判断されたとのこと)為、7.1からは設定無しをデフォルトとする事にしたとの事です。json gemにJSON native typeにマップ出来ない値を拒否するstrict optionを提案しており、それがマージされればその機能を使うのが良いのでは、という事です。

参考: Add a strict option to Generator


Add missing CHANGELOG entries for #47463 and #47422

activerecord/CHANGELOG.mdの修正です。

columnのserializeに使われるserializerを変更出来るようにしたAllow to define the default column serializer、及び、先のserializerのデフォルトを指定無しに変更した対応のエントリーを追加しています。


Fix a typo in activerecord/CHANGELOG

activerecord/CHANGELOG.mdの修正です。

librarieslibariesにタイポしていたのを修正しています。


Small tweaks on AR changelog [ci skip]

activerecord/CHANGELOG.mdの修正です。

各エントリーのフォーマット及びグラマーの修正を行っています。


Add changelog entry for #47316 [ci skip]

activesupport/CHANGELOG.mdの修正です。

Object#in?でopen date rangeをサポートするよう修正した、Add Object#in? support for open rangesの対応のエントリーを追加しています。