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