当部分本地人作为自己的本地发送给另一个部分时,它不会持久存在

use*_*154 10 ruby-on-rails local-variables partial

我像这样渲染部分:

<%= render :partial => 'widgets/some_partial, :locals => {:foo => 'bar'} %>
Run Code Online (Sandbox Code Playgroud)

所以_some_partial.html.erb我在里面渲染了两个更像的部分:

<% #foo.nil? #=> false %>
<%= render :partial => 'widgets/another_partial', :locals => {:foo => foo} %>
`<%= render :partial => 'widgets/another_partial_again', :locals => {:foo => foo} %>`
Run Code Online (Sandbox Code Playgroud)

foo局部变量渲染得很好some_partial.html.erb甚至在another_partial_again.html.erb.但是,another_partial.html.erb即使我在render调用中明确地传递了foo变量,foo变量也是不可访问的.

这里发生了什么?

谢谢您的帮助.

asg*_*eo1 41

undefined local variable or method当我使用已:locals定义的局部渲染部分时,我也出现了错误.

但是,我有一个不同的问题导致我的问题,所以我想我会分享我的解决方案,以防它帮助其他人.(此页面是我搜索此错误后的第一个结果)

基本上只是确保你:partial => 'path/to/partial'在通话中使用render.

<%= render :partial => 'widgets/some_partial', :locals => {:foo => 'bar'} %>
Run Code Online (Sandbox Code Playgroud)

不像我在做的那样:

<%= render 'widgets/some_partial', :locals => {:foo => 'bar'} %>
Run Code Online (Sandbox Code Playgroud)

轻松的铁路/红宝石新手喜欢我想念.

  • +1 @ asgeo1奇怪你需要`:partial`才能使它工作,但确实有效! (6认同)

use*_*154 3

解决了。事实证明,我也从控制器渲染了相同的部分,而没有发送正确的局部变量。不管怎么说,多谢拉!!!