部分不访问局部变量

时间:2012-08-31 13:45:32

标签: ruby-on-rails-3 erb

我正在渲染这样的部分:

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

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

undefined local variable or method `page'

我正在访问变量,如:

<%= page.title %>

那我还需要做什么?

2 个答案:

答案 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} %>