なるようになるブログ

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

rails commit log流し読み(2020/05/12)

2020/05/12分のコミットです。

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

activestorage/CHANGELOG.md

railties/CHANGELOG.md


Add release notes for Action Text [ci skip] (#39231)

rails guideのRuby on Rails 6.1 Release Notesの修正です。

Action Textの変更点についてReleaes Notesに説明を追加しています。


Active Storage: allow serving files by proxying

Active Storageの修正です。

ファイルの提供方法が、signed URLへのリダイレクトだけだったのを、storage serviceのproxy経由でファイルを提供出来るよう修正しています。CDN経由でファイルを配信したい場合を想定した機能。

proxy経由での配信URLは、rails_storage_proxy_path / _url メソッドで取得出来るようになっています。

<%= image_tag rails_storage_proxy_path(@user.avatar) %>

デフォルトをそもそもproxy経由にしたい場合、config.active_storage.resolve_model_to_route:rails_storage_proxyを指定すればOKです。


Fix Ruby 2.7 keyword arguments warning

actionpack/lib/action_dispatch/routing/url_for.rbの修正です。

ActionDispatch::Routing::UrlFor#initializeでキーワード引数に関するwarningが出ていたのを対応しています。


Clean up the generate method signature

actionpack/lib/action_dispatch/journey/formatter.rbactionpack/lib/action_dispatch/routing/route_set.rbの修正です。

ActionDispatch::Journey::Formatter#generateメソッドからparameterize引数を削除しています。

parameterizeが渡されるのは一箇所からだけの為、引数に指定されていた処理をFormatter内で直接行うようにしています。


Add support for PostgreSQL contains and overlaps operators

Active Recordの修正です。

ArelにPostgreSQL@> (contains)と&& (overlaps) operators のサポートを追加しています。


deprecates the classic autoloader

railties/CHANGELOG.mdの修正です。

classic autoloaderはdeprecateになりますよ、というお知らせをCHANGELOGに記載しています。実際のコードの対応はこのコミットではなし。


adds credit to CHANGELOG item [ci skip]

railties/CHANGELOG.mdの修正です。

先のCHANGELOGの修正の際に対応者名を入れ忘れていたのを修正しています。


Revert "Don’t ignore X-Forwarded-For IPs with ports attached"

X-Forwarded-For headerの値にport番号まで含まれていた場合にremote_ipが正しいIPを返さないバグがあったのを修正した、Don’t ignore X-Forwarded-For IPs with ports attachedをRevertしています。

Rack 2.2.0に依存している実装になっている、かつ、今のところ、Rack 2.0.9以上をサポートするようになっており、古いRackでエラーになってしまうのを避ける為、という理由でRevertしています。


Merge pull request #39178 from Shopify/optimize-dangerous-methods

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

dangerous_attribute_method?メソッドでメソッドが定義済みかどうかをチェックするのに、method_defined?でチェックしていたのを、メソッドのセットを最初に作成し、そのセットに含まれるかどうかでチェックするよう修正しています。