Fix stale instance variable in `stale?` RDoc example
ActionController::ConditionalGet の RDoc サンプルで、stale? に渡すべきインスタンス変数と実際に参照している変数が食い違っていた問題を修正しました。これにより、ドキュメント例が実際のコードと整合し、読者が誤解するリスクがなくなります。
背景
stale? の使用例 は Conditional GET の概念を示す重要なドキュメントです。該当サンプルは単一レコードシナリオで @article = Article.find(params[:id]) と定義した後、stale?(@article, …) と正しく呼び出していますが、続く行で未定義の @articles を参照していました。これは単純なタイプミスながら、コード例としては致命的な誤りです。
技術的な変更
@@ -217,7 +217,7 @@ def fresh_when(object = nil, etag: nil, weak_etag: nil, strong_etag: nil, last_t
# @article = Article.find(params[:id])
#
# if stale?(@article, public: true, cache_control: { no_cache: true })
- # @statistics = @articles.really_expensive_call
+ # @statistics = @article.really_expensive_call
# respond_to do |format|
# # all the supported formats
# end
変更点はコメント行中の変数名 @articles を @article に置き換えるだけです。実装ロジックには影響せず、例示コードの整合性のみを修正しています。
設計判断
コメントの正確性を保つこと は、RDoc が生成するドキュメントの信頼性に直結します。今回の修正は、実行可能なコード例とコメントが一致するようにするという、最小限の変更で最大の可読性向上を狙った判断です。新たなキーやロジックの追加は不要で、既存のコメント構造をそのまま保ちつつ、変数名だけを正しました。
まとめ
単一レコードの stale? 例示における変数名ミスを修正することで、公式ドキュメントの一貫性が回復しました。コード例とコメントが一致すれば、開発者は正しい使用方法を容易に理解でき、誤解による実装ミスを防げます。