[英]Pass locals for render partial
我这样渲染局部:
<% @assets_new.each do |f| %>
<li class='asset_item'><%= render f ,:locals => { :main_page => "sample" } %> </li>
<% end %>
然后,我有_asset.html.erb,例如:
<%= main_page %>
在我尝试读取main_page当地人的地方,但是它不起作用,它抛出错误:
undefined local variable or method `main_page' for #
<#<Class:0x007fe865cc2018>:0x007fe8625cdb98>
我不明白什么?
删除:locals
,呈现局部的正确方法是:
render f, :main_page => "sample"
仅在使用render
的替代(旧)版本时才需要传递locals:
:
# Old way
render partial: f, locals: { main_page: 'sample' }
# Or, identical new way
render f, main_page: 'sample'
但是,您不能像尝试那样将两者混为一谈。 在您的版本中,您已经创建了一个名为locals
“ local”,其值为{main_page: 'sample'}
。
唯一需要旧的render partial:
方法是在渲染集合时, render partial: 'user', collection: @users
,并且也已替换为简单的render @users
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.