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