我正在做以下事情:
<%= render :partial => "folder/content", :locals => {:var1 => featured_content, :featured => true} %>
在_content.html.erb partial中,我可以访问第一个局部变量。 var1效果很好。但是,第二个局部变量存在问题。
我在想要使用特色变量的行之前调用调试器。我可以很好地访问该变量(及其值)。事实上,在调试器中,我可以列出所有局部变量......我看到“特色”就是其中之一。
但是当我运行我的服务器时,我收到以下错误:
undefined local variable or method `featured' for #<#<Class:0x002g9ff8617940>:0x007f9aa251eb38>
这里可能发生什么?对我来说根本没有意义!
更新
如果我执行以下操作:
<% if local_assigns.has_key? :featured %>
<% 'hello world' if featured %>
<% end %>
然后一切都很好。但是,如果feature不在if语句的范围内,那么我会收到错误。
就我所见,这是彻头彻尾的疯狂 - 我希望能够深入了解正在发生的事情,以及为什么它只发生在这个糟糕的变量上(另一个变量对你来说完全没问题......)。
答案 0 :(得分:0)
你可以试试这个:
<%= render "folder/content", :var1 => featured_content, :featured => true %>
请查看此信息以获取更多信息:
答案 1 :(得分:0)
看起来has_key是唯一可行的选项(请参阅我的编辑)。我打算关闭这个,因为我没有得到任何更好的回应。