私はひどい子供であり、部分テンプレートをレンダリングするときに値が:localsハッシュで明示的に定義されていない場合、部分テンプレートで次の構文を使用してローカル変数のデフォルト値を設定しました-
<% foo = default_value unless (defined? foo) %>
これは最近まで正常に機能していたようで、(理由がわからない)渡されなかった変数が、(未定義ではなく)nilに定義されているかのように動作し始めました。
SOのさまざまな役立つ人々によって指摘されているように、http://api.rubyonrails.org/classes/ActionView/Base.htmlは使用しないように言っています
defined? foo
代わりに使用する
local_assigns.has_key? :foo
私は自分のやり方を修正しようとしていますが、それは多くのテンプレートを変更することを意味します。
前払いして、すべてのテンプレートでこの変更を行うことはできますか?注意が必要な注意点はありますか?それぞれをどれくらい熱心にテストする必要がありますか?