6

我正在渲染一个像这样的部分:

 <% @pages.each do |page| %>
     <%= render 'layouts/pagewithchildren', :locals => { :page => page } %>
 <% end %>

但是当我尝试访问页面中的变量时,我收到了错误:

undefined local variable or method `page'

我正在访问变量,例如:

<%= page.title %>

那我还需要做什么?

4

2 回答 2

8

您必须明确指定 partial,否则 Rails 会将 locals 视为参数哈希,您可以访问 locals[:page] 但不能直接在您的 partial 中访问 page 变量。

将您的代码更改为:

<%= render partial:'layouts/pagewithchildren', locals: {page: page} %>
于 2014-02-17T19:25:31.587 回答
8

我不是 100% 确定,但也不是

<%= render 'layouts/pagewithchildren', :page => page %>

或者

<%= render :partial => 'layouts/pagewithchildren', :locals => { :page => page } %>

?

于 2012-08-31T13:47:42.117 回答