なるようになるブログ

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

rails commit log流し読み(2019/07/11)

2019/07/11分のコミットです。

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

actionpack/CHANGELOG.md


Merge pull request #36618 from engwan/fix-query-cache-with-shared-ar-connection

activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rbactiverecord/lib/active_record/connection_adapters/abstract/query_cache.rbの修正です。

shared connectionsを有効化している場合に、query cacheのメソッドで参照するスレッドに誤りがあったのを修正しています。


Merge pull request #36637 from Shopify/share-quote-cache

Active Recordの修正です。

AbstractAdapterクラスのインスタンス変数で保持していたカラム名とテーブル名のキャッシュをクラス変数で保持するよう修正しています。コネクション間でキャッシュを使いまわせるようにする為。


Merge pull request #36645 from Shopify/arel-dispatch-cache

activerecord/lib/arel/visitors/visitor.rbの修正です。

Arelのdispatchキャッシュをコネクション間で使いまわせるよう修正しています。


MySQL: Check error number instead of a message

activerecord/lib/active_record/connection_adapters/mysql2_adapter.rbactiverecord/lib/active_record/tasks/mysql_database_tasks.rbの修正です。

MySQL adapterでDBが作成済み / 未作成かを判定するのにエラーメッセージの内容をチェックしていたのを、error numberをチェックするよう修正しています。ロケールに依存せずチェック出来るようにする為。


Adds support for configuring HTTP Feature Policy (#33439)

Action Pack、railtiesの修正です。

Feature Policy headerを設定出来るよう対応しています。

設定はアプリ全体(initializersで実施)、及び、controller単位で出来るようになっています。

# config/initializers/feature_policy.rb
Rails.application.config.feature_policy do |f|
  f.camera      :none
  f.gyroscope   :none
  f.microphone  :none
  f.usb         :none
  f.fullscreen  :self
  f.payment     :self, "https://secure-example.com"
end
class PostsController < ApplicationController
  feature_policy do |f|
    f.geolocation "https://example.com"
  end
end

参考: Introduction to Feature Policy  |  Web  |  Google Developers


Merge pull request #36647 from giraffate/fix_exists_with_distinct_and_offset_and_order_in_postgresql

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

joinしたtableに対するorder + distinct + offset + relation.exists?を使用した場合にPostgresSQLで不正なSQLが生成されてしまうバグがあったのを修正しています。


Do not use hard tabs in CHANGELOGs [ci skip]

activesupport/CHANGELOG.mdの修正です。

CHANGELOGでハードタブを使っている箇所があったのをスペースに修正しています。ハードタブだとインデントとして正しく認識されない為。