update_all ドキュメントでクラスセレクタ構文を使用へ修正
Turbo Streams の update_all ヘルパーのサンプルが、クラス名だけでなく正しい CSS セレクタ(.clearance_item)を示すよう変更され、実装通りに複数要素を対象化できるようになりました。
背景
この PR は、update_all のサンプルがクラス名だけで記述されていたため、実際のブラウザ上で要素がマッチしない問題を修正します。当初の例では "clearance_item" と記載され、Turbo が期待する CSS セレクタ ".clearance_item" が欠落していました。Issue #711 で報告された通り、マッチしないとサイレントに失敗します。正しいセレクタ表記に改めることで、ドキュメントと実装が一致します。
技術的な変更
update_all のコメント例が CSS クラスセレクタ形式に統一されました。app/models/turbo/streams/tag_builder.rb の 165 行目付近で、従来の "clearance_item" を ".clearance_item" に置換しています。同様にブロック形式の例でもドット付きのセレクタへ変更しています。これにより、読者はそのまま記述をコピーして機能することができます。
変更前:
# <%= turbo_stream.update_all "clearance_item", "Update the content of the dom target identified by the class clearance_item" %>
# <%= turbo_stream.update_all "clearance_item" do %>
# Update the content of the dom target identified by the class clearance_item
変更後:
# <%= turbo_stream.update_all ".clearance_item", "Update the content of the dom targets identified by the class clearance_item" %>
# <%= turbo_stream.update_all ".clearance_item" do %>
# Update the content of the dom targets identified by the class clearance_item
設計判断
ドキュメント修正は実装ロジックに影響しないため、既存の API 互換性は保持されたままです。Turbo が CSS セレクタ文字列を要求する設計は変わらず、単に例示が正確さを欠いていただけです。修正はコメントのテキストだけであり、実行時挙動は変わりません。このようなドキュメントの整合性は、開発者体験の向上に直結します。
まとめ
正しいクラスセレクタ構文を示したことで、update_all の使用例が即座に機能するようになりました。開発者はドキュメントを参照するだけで期待通りに複数要素を更新でき、誤解やデバッグコストが削減されます。今後も公式ドキュメントと実装の齟齬がないよう、テストケースと同様にコメントの見直しが継続されることが期待されます。