我正在渲染一个像这样的部分:
<% @pages.each do |page| %>
<%= render 'layouts/pagewithchildren', :locals => { :page => page } %>
<% end %>
但是当我尝试访问页面中的变量时,我收到了错误:
undefined local variable or method `page'
我正在访问变量,例如:
<%= page.title %>
那我还需要做什么?
我正在渲染一个像这样的部分:
<% @pages.each do |page| %>
<%= render 'layouts/pagewithchildren', :locals => { :page => page } %>
<% end %>
但是当我尝试访问页面中的变量时,我收到了错误:
undefined local variable or method `page'
我正在访问变量,例如:
<%= page.title %>
那我还需要做什么?
您必须明确指定 partial,否则 Rails 会将 locals 视为参数哈希,您可以访问 locals[:page] 但不能直接在您的 partial 中访问 page 变量。
将您的代码更改为:
<%= render partial:'layouts/pagewithchildren', locals: {page: page} %>
我不是 100% 确定,但也不是
<%= render 'layouts/pagewithchildren', :page => page %>
或者
<%= render :partial => 'layouts/pagewithchildren', :locals => { :page => page } %>
?