私は次のことをしています:
<%= render :partial => "folder/content", :locals => {:var1 => featured_content, :featured => true} %>
_content.html.erbパーシャル内で、最初のローカル変数にアクセスできます。var1はうまく機能します。ただし、2番目のローカル変数には問題があります。
機能変数を使用する行の直前にデバッガーを呼び出します。その変数(およびその値)に問題なくアクセスできます。実際、デバッガーでは、すべてのローカル変数を一覧表示できます...そして「featured」がその1つであることがわかります。
しかし、サーバーを実行すると、次のエラーが発生します。
undefined local variable or method `featured' for #<#<Class:0x002g9ff8617940>:0x007f9aa251eb38>
ここで何が起こっている可能性がありますか?それは私にはまったく意味がありません!
アップデート:
私が次のことをした場合:
<% if local_assigns.has_key? :featured %>
<% 'hello world' if featured %>
<% end %>
その後、すべてが完全に正常に動作します。ただし、featuredがifステートメントの範囲内にない場合、エラーが発生します。
これは私が見る限り完全な狂気です-何が起こっているのか、そしてなぜそれがこの1つの貧弱な変数にのみ起こっているのかについての洞察が欲しいです(他の変数はあなたを完全に気にします...)。