なるようになるブログ

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

rails commit log流し読み(2021/05/07)

2021/05/07分のコミットです。

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

activerecord/CHANGELOG.md


Deduplicate the environment glob in engine paths

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

engine pathsのglob処理で、Stringオブジェクトの生成を減らすよう修正しています。


Merge pull request #41584 from jonathanhefner/route-action-reuse-existing-namespace

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

routeメソッドにnamespaceオプションが指定されている、かつ、指定されたnamespaceが既に存在する場合、そのnamespace配下にrouteを追加するよう修正しています。


Add a public writer for ActiveStorage::Service::DiskService#root

activestorage/lib/active_storage/service/disk_service.rbの修正です。

ActiveStorage::Service::DiskService#rootにpublic writerを追加しています。動的にrootの変更を出来るようにする為。


Add docs on how to write tests for using Active Storage [ci skip]

docの修正です。

Active Storageを使っている場合のテストコードの書き方についての説明を追加しています。


Add has_one through disable_joins

Active Recordの修正です。

has_one associationsにjoinを無効化する為のオプション(disable_joins)を追加しています。 Add option to skip joins for associations.has_many associationsに追加されたdisable_joinshas_one対応です。複数DBを使用している、かつ、associationデータが違うDBにあるようなjoinでデータが取得出来ないときの為のオプションです。

class Person
  belongs_to :dog
  has_one :veterinarian, through: :dog, disable_joins: true
end
@person.veterinarian
# => SELECT "dogs"."id" FROM "dogs" WHERE "dogs"."person_id" = ?  [["person_id", 1]]
# => SELECT "veterinarians".* FROM "veterinarians" WHERE "veterinarians"."dog_id" = ?  [["dog_id", 1]]