我像这样渲染一部分:
<%= render :partial => 'widgets/some_partial,:locals => {:foo => 'bar'} %>
所以在_some_partial.html.erb里面,我再渲染两个这样的部分:
<% #foo.nil? #=> false %> <%= render :partial => 'widgets/another_partial',:locals => {:foo => foo} %> `<%= render :partial => 'widgets/another_partial_again',:locals => {:foo => foo} %>`
foo局部变量在some_partial.html.erb中甚至在another_partial_again.html.erb中显示出来.但是,即使我在render调用中显式地传递了foo变量,在another_partial.html.erb中也是无法访问的.
这里发生了什么?
谢谢您的帮助.
解决方法
当我渲染一个局部变量时,我有一个未定义的局部变量或方法错误:
但是,我有一个不同的问题导致我的问题,所以我以为我会分享我的解决方案,以帮助任何人. (这个页面是第一个结果,当我googled这个错误)
基本上只要确保你使用:partial =>你的调用中的’path / to / partial’渲染.
即
<%= render :partial => 'widgets/some_partial',:locals => {:foo => 'bar'} %>
不像我在做:
<%= render 'widgets/some_partial',:locals => {:foo => 'bar'} %>
容易的一个轨道/ruby新手像我想念.