2021/12/15分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
activestorage/CHANGELOG.md
rails guideのWorking with JavaScript in Rails
の修正です。
Unobtrusive JavaScript
の項のグラマーの修正を行っています。
Raise error when callback's only/unless symbols aren't methods
Action Pack、railtiesの修正です。
controllerのbefore_action
のonly/unlessに指定するSymbolが、存在しないメソッドの場合にexceptionをraiseするよう修正しています。メソッド名をタイポしていたような場合に、気付けるようにする為。
Fix invalid forwarded host vulnerability
actionpack/lib/action_dispatch/middleware/host_authorization.rb
の修正です。
"X-Forwarded-Host" headersに特定のフォーマットに加工されたホストが指定された場合に、オープンリダイレクト出来てしまう脆弱性があったのを修正しています。config.hosts
に.
からはじまるホスト名を指定している場合に影響を受ける可能性があります。
参考: CVE-2021-44528
Add support for YubiKey OTP codes during release
tasks/release.rb
の修正です。
ライブラリのリリースでYubiKeyのOTP codesを使用しての認証を出来るよう修正しています。ykman
を使って処理を行っています。
参考: Publishing Gems With Your YubiKey
Allow localhost with a port by default in development
actionpack/lib/action_dispatch/middleware/host_authorization.rb
の修正です。
先の脆弱性の対応の影響で、development envでlocalhostを任意のポートを指定して起動した場合に、host authorizationにリクエストがブロックされてしまうリグレッションが発生していたのを修正しています。
Edits link to edge guide for 7.0 final
railties/lib/rails/generators/rails/app/templates/Gemfile.tt
の修正です。
edgeguides.rubyonrails.org
へのリンクを guides.rubyonrails.org
に修正しています。
FormBuilder#field_id: prepend namespace:
option
Action Viewの修正です。
FormBuilder#field_id
メソッドでid
を組み立てる際に、namespace
オプションが無視されてしまっていたのを、namespace
オプションに指定された値を使用して組み立てるよう修正しています。
Generated Gemfile will automatically pickup the latest version on first bundle (#43866)
railties/lib/rails/generators/app_base.rb
、
railties/lib/rails/generators/rails/app/templates/Gemfile.tt
の修正です。
rails new
で生成されるGemfile
で定義するgemから、バージョンの指定を削除しています。bundlerが自動で最新バージョンを取得してくれるので、バージョンの指定は必要無いだろう、という事で。
Merge pull request #43511 from seanpdoyle/active-storage-overwrite-many-with-emptyish
Action View、Active Storageの修正です。
Action Viewで、ActionView::Helper::FormBuilder#file_field
にmultiple: true
を指定、かつconfig(config.active_storage.multiple_file_field_include_hidden
)がtrueの場合に、file_field
で空のcollectionをhiddenフィールドとして生成するよう修正しています。
合わせて、Active Storageで、has_many_attached
に空の値を指定した場合、空の値が設定されたとみなす(ファイルを削除する)よう修正しています。
これにより、file filedで空の値を送信するだけで、has_many_attached
に登録済みのファイルの削除が出来るようになっています。
Remove CHANGELOG entry that is already in 7-0-stable
actionview/CHANGELOG.md
、
activestorage/CHANGELOG.md
の修正です。
CHANGELOGから、7.0のブランチにバックポートされた対応のエントリーを削除しています。
Revert "Revert "Merge pull request #43816 from jpawlyn/fix-one-and-many-on-relation""
load済みのassociationに対して削除処理を実行した場合にActiveRecord::Relation#one?
の結果が正しく取得出来ないバグがあったのを修正した、Remove memoization for limited_countを再度コミットしています。CIが壊れた
為一度Revertされたのですが、そもそもメモ化出来ない値をメモ化してしまっていたのが原因で、修正内容自体は正しかった為。
Merge pull request #39663 from jonathanhefner/rails-new-prerelease
railtiesの修正です。
rails new
にprerelease flag(e.g. --edge
)を指した場合に、アプリケーションの生成が指定したprereleaseのバージョンで行われなかった(インストール済みのバージョンが使用されていた)のを、アプリケーションの生成がprereleaseのバージョンで行われるよう修正しています。
Merge pull request #43855 from nvasilevski/button-to-changes-to-release-notes
rails guideのRuby on Rails 7.0 Release Notes
、Upgrading Ruby on Rails
の修正です。
ActionView::Helpers::UrlHelper#button_to
に保存済みのActive Recordのobjectを指定した場合に、使用されるhttp methodがRails 7.0で変わった事についての説明を追加しています。
Merge pull request #43846 from fig/fix-scaffold-self-referential-link
railties/lib/rails/generators/erb/scaffold/templates/index.html.erb.tt
、
railties/lib/rails/generators/erb/scaffold/templates/partial.html.erb.tt
の修正です。
scaffoldで生成されるテンプレートで、showページへのリンクがshowページ内に含まれてしまっていたのを、indexページに移動しています。
railtiesの修正です。
controller generatorにnamespace + model nameを指定した場合に、namespaceが無視されて値の生成がされてしまうバグがあったのを修正しています。
Merge pull request #43850 from hachi8833/fix_favicon_link_tag
actionview/lib/action_view/helpers/asset_tag_helper.rb
の修正です。
favicon_link_tag
メソッドが生成するlinkタグのrel
attributeから、shortcut
を削除しています。shortcut
は数年前にdeprecatedになっており、現在指定するのは推奨されていない(無視される)為。
参考: Link types - HTML: HyperText Markup Language | MDN
Merge pull request #43836 from donv/patch-1
actionpack/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb
の修正です。
System Testでテスト失敗時のスクリーンショットを取得する際に、テスト用のサーバが起動していない場合は、処理を行わないよう修正しています。
Merge pull request #43817 from etiennebarrie/deprecate-non-url-safe-csrf-tokens
actionpack/lib/action_controller/metal/request_forgery_protection.rb
の修正です。
CSRFトークンを生成するのにURL-safeな値を使用するかどうかを指定する為のconfig(config.action_controller.urlsafe_csrf_tokens
)をdeprecateにしています。今後は、必ずURL-safeな値が指定されるようになります。
railties/test/generators/scaffold_controller_generator_test.rb
の修正です。
Merge PR #43611の影響でscaffoldのテストがfailしていたのを修正しています。
actionpack/lib/action_controller/metal/testing.rb
の修正です。
Rubyのwarning(instance variable xxx not initialized
)が出ていたのを修正しています。
Add back CHANGELOG entry for authenticate_by
activerecord/CHANGELOG.md
の修正です。
Add authenticate_by when using has_secure_passwordで追加されたauthenticate_by
メソッドについてのエントリーを戻しています。Rails 7.0にはバックポートされておらず、次バージョンの新機能の為。