なるようになるブログ

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

rails commit log流し読み(2020/01/24)

2020/01/24分のコミットです。

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

activerecord/CHANGELOG.md


Allow schema cache path to be defined in the config file

Active Recordの修正です。

schema cache pathを設定ファイルで指定出来るよう修正しています。keyはschema_cache_path

例。

development:
  adapter: postgresql
  database: blog_development
  pool: 5
  schema_cache_path: tmp/schema/main.yml

Merge pull request #38250 from vikasvr/skip_keep_fix

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

--skip-keepsオプションをrails newに指定した場合も、app/assets/imagesディレクトリは生成するよう修正しています。

デフォルトで生成されるconfig/manifest.jsimagesディレクトリを参照しており、ディレクトリが無いと参照時にエラーにになってしまう為。


Use path instead of fullpath on validating authenticity token

actionpack/lib/action_controller/metal/request_forgery_protection.rbの修正です。

authenticity tokenのvalidate時にrequestのfullpathを使用していたのを、pathを使用するよう修正してます。

Do not re-parse PATH_INFO when validating authenticity tokenでquery parametersの再パースをしないよう対応したのですが、その際の修正漏れ対応(fullpathはquery parameters付きの値が返ってくる為、fullpathを使わないようにする必要があったのが対応が漏れていた)


Merge pull request #38247 from rosa/save-context-with-response

Active Recordの修正です。

database selectorのcontextでrequestだけでしか更新出来なかったのを、responseも更新出来るよう修正しています。

primary / secondaryどちらに処理をおこなかったをresponseで判断出来るよにしたい、というユースケースがあった為、との事です。


Move advisory lock to it's own connection

Active Recordの修正です。

advisory lockのconnection名をadvisory lock用の独自の名前に修正しています。

元々はmigration開始時にActiveRecord::Base.connectionを使用していたのですが、アプリが複数DBを使用して、かつ、migration内でmodelを使用して何か処理を行った場合、そこで違うconnectionが接続されてしまう&advisory lockがreleaseされてしまう、という問題が発生していました。

で、そのための(一時)対応として、独自のconnection名を使用して、modelのconnectioが使用された場合もlockがreleaseされないよう対応しています。


Fix Active Record changelog [ci skip]

activerecord/CHANGELOG.mdの修正です。

CHANGELOG内の定数名のタイポ、フォーマットの修正を行っています。


Update Migration number from 5.0 to current 6.0 [ci skip]

rails guideの修正です。

各guide内の、マイグレーションファイルのexampleコードのバージョンを6.0に修正しています。


Document the return value of update_all [ci skip]

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

update_allメソッドのdocに戻り値についての説明を追加しています。


Merge pull request #37488 from dylanahsmith/model-adapter-type-lookup

activerecord/lib/active_record/attributes.rbactiverecord/lib/active_record/type.rbの修正です。

attribute type lookup処理にmodelのconnectionのadapter名を使うよう修正しています。

元々はActiveRecord::Base.connectionが使われていたのですが、modelとActiveRecord::Baseのconnectionが違う場合に、正しい値が取得出来ない為。