なるようになるブログ

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

rails commit log流し読み(2023/10/29)

2023/10/29分のコミットです。

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

activerecord/CHANGELOG.md


Do not rely on dup in forgetting_assignment optimization

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

forgetting_assignmentメソッドで最適化処理の為にdupを使用していたのを使用しないよう修正しています。ActiveModel::Type::ImmutableString などの一部のtypeがdupだと正しく値が複製されない挙動になっており、その影響でserialized attributeが正しくresetされないという問題が発生していた為。


Merge pull request #49376 from fractaledmind/ar-sqlite-deferred-fks

Active Recordの修正です。

SQLite3 adapterでforeign keyを指定する際にDEFERRABLE INITIALLY DEFERREDを指定出来るよう修正しています。

add_reference :person, :alias, foreign_key: { deferrable: :deferred }
add_reference :alias, :person, foreign_key: { deferrable: :deferred }

この対応に伴い、deferrableオプションにtrue(immediateとして扱われる)を指定するのがdeprecatedになっています。