なるようになるブログ

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

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

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

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

activesupport/CHANGELOG.md

actionpack/CHANGELOG.md


fix a typo in 5_2_release_notes.md

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

デフォルトでform_withのidを生成するようにした対応のエントリーのグラマーの修正を行っています。


Merge pull request #36467 from spk/add-doc-host-protocol-asset_path

actionview/lib/action_view/helpers/asset_url_helper.rbのdocの修正です。

asset_pathメソッドのdocにhostprotocolオプションを指定した場合のexampleを追加しています。


Merge pull request #36434 from Edouard-chin/ec-securecompare-rotation

secretのrorate + ActiveSupport::SecurityUtils.secure_compareでのsecretの比較を行う為のActiveSupport::SecureCompareRotator classを追加しています。

rotate前後の値でのcompareは通るが、それ以外の値についてはエラー(ActiveSupport::SecureCompareRotator::InvalidMatch)がraiseされるようになっています。

ActiveSupport::SecureCompareRotator.new('new_production_value')
rotator.rotate('previous_production_value')
rotator.secure_compare!('previous_production_value') #=> true
rotator.secure_compare!('new_production_value') # => true
rotator.secure_compare!('other_production_value')
# => ActiveSupport::SecureCompareRotator::InvalidMatch (ActiveSupport::SecureCompareRotator::InvalidMatch)

Merge pull request #34218 from eliotsykes/filter-common-sensitive-params

railties/lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb.ttの修正です。

rails newで生成されるfilter_parameter_logging.rb内のconfig.filter_parametersのデフォルトに、機密情報だろうと思われるパラメータ名を追加しています。

- Rails.application.config.filter_parameters += [:password]
+ Rails.application.config.filter_parameters += [
+   :password, :secret, :token, :_key, :auth, :crypt, :salt, :certificate, :otp, :access, :private, :protected, :ssn
+ ]

Merge pull request #36671 from wjessop/do_not_validate_non_dirty_association_targets

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

single associationに対してvalidationを実行する際に、状態が変わっていないassociationについてはvalidation処理を実行しないよう修正しています。associationが変更されていない場合は、そのassociationはsaveされないなの筈でvalidationも不要な為。


Add content_type to upload in Azure

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

Azure Storageにファイルアップロードする際に、content_typeを指定出来るよう修正しています。


Merge pull request #36524 from okuramasafumi/add-middleware-command-to-command-line-guide

rails guideのThe Rails Command Lineの修正です。

Miscellaneousの項にrails initializers、`rails middleware``コマンドについての説明を追加しています。


Merge pull request #36580 from Shopify/schema-cache-deuplication-from-database

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

Deduplicate various Active Record schema cache structuresAlso deduplicate schema cache data when using the init_with interfaceと同様に、データベースから読み込んだ値についても重複したschema cacheのオブジェクトを排除するよう修正しています。


Make ActiveSupport::Logger Fiber-safe

activesupport/lib/active_support/logger_thread_safe_level.rbの修正です。

ActiveSupport::Logger#local_level=Thread.current.__id__の代わりにFiber.current.__id__を使用するよう修正しています。

ActiveSupport::LoggerがFiber-safeになるようにする為(元の実装だとFiber内で変更したlog levelの変更が他のFiberにも影響を与えてしまっていた)。


Merge pull request #36564 from rodrei/docs-active-starage-warning

rails guideのActive Storage OverviewConfiguring Rails Applications`の修正です。

Active Storageはセキュリティの為にContent-Disposition headerを強制的に変える事、及び、config.active_storage.content_types_allowed_inline configについての説明を追加しています。


Merge pull request #36562 from colszowka/patch-1

rails guideのActive Storage Overview`の修正です。

priarmy keyにUUIDを使用している場合、生成されたactive_storage_attachmentsrecord_id columeのtypeを変更する必要がある旨説明を追加しています。


Fix multiple database support for DATABASE_URL env variable

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

複数DBの設定をしている、かつ、接続先をDATABASE_URLで指定している場合に、DATABASE_URLで指定した接続先に接続出来ないバグがあったのを修正しています。


Stop setting a default Capybara app host

Action Packの修正です。

system testでCapybaraのapp host(Capybara.app_host)を指定していたのを、デフォルトでは指定しないよう修正しています。

このhostをurl optionのhostにも指定していたのですが、Capybaraがアプリサーバ自体を起動した場合app hostは指定されないようになっており、その挙動と合わせる為。url optionのhostにはCapybara のsessionからURLを取得するようになっています(Capybara.current_session.server_url)。かつ、Capybara.current_session.server_urlがpublic APIになったのがCapybara 3.26以降な為、system testの要求するCapybaraのバージョンも3.26以上となっています。


Merge pull request #36492 from kamipo/remove_depth_first_visitor

Active Recordの修正です。

使用していないDepthFirst visitorを削除しています。


Merge pull request #36740 from stanhu/sh-fix-index-exists-postgresql-partial-index

activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rbの修正です。

PostgreSQLでexpression indexを使用している場合に、そのindexがindex_exists?メソッドで正しくチェック出来ないバグがあったのを修正しています。


Merge pull request #36760 from andre-lgf/master

rails guideのAction View Overviewの修正です。

collection_radio_buttonsのexampleに、checkedオプションを指定した場合のexampleを追加しています。