Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

Rails 7.2.0 Action View CHANGELOG(全項目リンク付き)

概要

MITライセンスに基づいて翻訳・公開いたします。

なお、機能削除のエントリについては、原則として7.2での削除プルリクではなく、その機能が非推奨化されたときの過去のプルリクへリンクしています。

Rails 7.2.0 Action View CHANGELOG(全項目リンク付き)

更新14件


Rails 7.2.0.beta3(2024/07/11)

🔗 Also pass local_assigns to strict locals templates by casperisfine · Pull Request #52205 · rails/rails

  • strict localsを使うテンプレートにlocal_assignsが含まれるよう修正

修正前は、strict localsを定義しているテンプレートがlocal_assignsハッシュを受け取らないことがあった。

Jean Boussier

参考: 週刊Railsウォッチ20240709: locals:マジックコメントを使うとlocal_assignsが未定義になる場合があったのを修正


Rails 7.2.0.beta2(2024/06/04)

変更なし


Rails 7.2.0.beta1(2024/05/29)

🔗 Add queries count to template rendering instrumentation by fatkodima · Pull Request #51457 · rails/rails

参考: 週刊Railsウォッチ20240416: クエリ数とクエリキャッシュヒット数をログに表示するようになった

  • テンプレートレンダリングのinstrumentationにクエリカウントを追加
# 改修前
Completed 200 OK in 3804ms (Views: 41.0ms | ActiveRecord: 33.5ms | Allocations: 112788)

# 改修後
Completed 200 OK in 3804ms (Views: 41.0ms | ActiveRecord: 33.5ms (2 queries, 1 cached) | Allocations: 112788)

fatkodima

🔗 Raise ArgumentError if :renderable object does not respond to #render_in by seanpdoyle · Pull Request #50665 · rails/rails

  • :renderableオブジェクトが#render_inに応答しない場合はArgumentErrorを発生するよう修正

Sean Doyle

🔗 Add the nonce: true option for stylesheet_link_tag helper by akhilgkrishnan · Pull Request #50591 · rails/rails

  • stylesheet_link_tagヘルパーにnonce: trueオプションを追加

Content Security Policyでnonce自動生成をサポートするため。

javascript_include_tag nonce: trueと同じ動作になる。

Akhil G Krishnan, AJ Esler

🔗 Parse ActionView::TestCase#rendered as DocumentFragment by seanpdoyle · Pull Request #50584 · rails/rails

  • ActionView::TestCase#renderedのHTMLコンテンツ解析が、Nokogiri::XML::DocumentではなくNokogiri::XML::DocumentFragmentと同じになるよう修正

Sean Doyle

🔗 Rename ActionView::TestCase::Behavior::{Content,RenderedViewContent} by seanpdoyle · Pull Request #49856 · rails/rails

注: この修正はRails 7.1.3でリリース済みです。

  • ActionView::TestCase::Behavior::ContentActionView::TestCase::Behavior::RenderedViewContentにリネーム

RenderedViewContentStringから継承するようにし、private APIを:nodoc:にした。

Sean Doyle

🔗 deprecate passing nil as model arg instead of raising ArgumentError by cjilbert504 · Pull Request #50931 · rails/rails

参考: 週刊Railsウォッチ20240221: form_withmodelオプションにnilを渡すことが非推奨化された

  • form_withメソッドにmodel:引数の値としてnilを渡すことを非推奨化する

Collin Jilbert

🔗 Alias field_set_tag helper to fieldset_tag by seanpdoyle · Pull Request #50241 · rails/rails

参考: 週刊Railsウォッチ20231222: field_set_tagヘルパーメソッドのエイリアスfieldset_tagを追加

  • <fieldset>要素の命名に合わせるため、field_set_tagヘルパーのエイリアスfieldset_tagを追加

Sean Doyle

🔗 Deprecate content for void elements in TagBuilder by skipkayhil · Pull Request #50159 · rails/rails

  • tag.brタグビルダーを使う場合に、空要素にコンテンツを渡すことを非推奨化

Hartley McGuire

参考: Rails API tag -- ActionView::Helpers::TagHelper

Rails: 5.1以降のtagヘルパー記法はcontent_tagより便利

🔗 Handle negative numbers in NumberToHumanSizeConverter by Earlopain · Pull Request #49791 · rails/rails

参考: 週刊Railsウォッチ20231107: number_to_human_sizeで負数を扱えるよう修正

注: この修正はRails 7.1.2でリリース済みです。

  • #to_fs(:human_size)が負の値でも正常に動作するよう修正

Earlopain

🔗 Ignore implicit locals if not declared by templates with strict locals by byroot · Pull Request #49782 · rails/rails

注: この修正はRails 7.1.2でリリース済みです。

  • 暗黙のlocalsを受け取れないテンプレートをコレクションレンダリングしたときに注入されるlocalsを自動的に破棄するよう修正。

コレクションをレンダリングすると2つの変数が注入されるため、strictなlocalsを使うテンプレートが壊れていた。

修正によって、テンプレートが実際にそれらの変数を受け取り可能な場合にのみ、それらの変数が渡されるようになった。

Yasha Krasnou, Jean Boussier

関連: Allow templates to define which locals they accept by joelhawksley · Pull Request #45602 · rails/rails

🔗 Fix rails-ujs auto start() in bundled environments [7-1-stable] by skipkayhil · Pull Request #49773 · rails/rails

注: この修正はRails 7.1.2でリリース済みです。

  • JSバンドラーを使ったときに@rails/ujsstart()を余分な回数呼び出していたのを修正

Hartley McGuire, Ryunosuke Sato

🔗 Fix capture view helper for HAML and Slim by casperisfine · Pull Request #49612 · rails/rails

参考: 週刊Railsウォッチ20231024: captureビューヘルパーがHAMLやSlimで空文字列""をキャプチャしたときの振る舞いを修正

注: この修正はRails 7.1.2でリリース済みです。

  • captureビューヘルパーと、HAMLやSlimとの互換性を修正

HAMLやSlim(他のテンプレートエンジンでも起きる可能性あり)で空文字列""がcaptureされるとバッファ全体が返されていた。

Jean Boussier

🔗 Updated @rails/ujs files to follow 8e3449908c59858384ae230d1416c7dcabc8c2dc by tricknotes · Pull Request #49553 · rails/rails

注: このセキュリティ修正はRails 7.1.1でリリース済みです。

  • @rails/ujsファイルを更新して、要素がisContentEditableの場合に特定のdata-*属性を無視するようにした

この修正はRails 7.0.4.3以降、Rails 7.1.0未満で導入済み。
CVE-2023-23913]

Ryunosuke Sato

Railsセキュリティ修正7.0.4.3、6.1.7.3がリリースされました

🔗 HTML tag validation added for tag names by akhilgkrishnan · Pull Request #49175 · rails/rails

参考: 週刊Railsウォッチ20231011: tagcontent_tagに無効なHTML文字を渡すとエラーをraiseするようになった

  • tagcontent_tagヘルパーメソッドにHTMLタグ名のバリデーションを追加

この修正によって、tag(またはcontent_tag)ヘルパーメソッドに渡したタグ名がHTML仕様に準拠しているかどうかをチェックするようになった。無効なHTMLタグ名を渡された場合、このメソッドは適切なエラーメッセージと共にArgumentErrorを発生する。

例:

# ArgumentError: Invalid HTML5 tag name: 12p
content_tag("12p") # 数値で始まるタグ名は無効

# ArgumentError: Invalid HTML5 tag name: ""
content_tag("") # タグ名が空なのは無効

# ArgumentError: Invalid HTML5 tag name: div/
tag("div/") # `/`を含めるのは無効

# ArgumentError: Invalid HTML5 tag name: "image file"
tag("image file") # タグ名にスペースを含めるのは無効

Akhil G Krishnan


注: content_tag7.2の時点でもレガシー記法とされていますが、現在も一応使えます。

Railsセキュリティ修正7.0.4.3、6.1.7.3がリリースされました

関連記事

Rails 7.1.0 Action View CHANGELOG(翻訳)


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。