部分不访问局部变量

Dea*_*ean 5 erb ruby-on-rails-3

我呈现的是这样的部分:

 <% @pages.each do |page| %>
     <%= render 'layouts/pagewithchildren', :locals => { :page => page } %>
 <% end %>
Run Code Online (Sandbox Code Playgroud)

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

undefined local variable or method `page'
Run Code Online (Sandbox Code Playgroud)

我正在访问变量,如:

<%= page.title %>
Run Code Online (Sandbox Code Playgroud)

那我还需要做什么呢?

sde*_*old 7

我不是百分百肯定,但也不是

<%= render 'layouts/pagewithchildren', :page => page %>
Run Code Online (Sandbox Code Playgroud)

要么

<%= render :partial => 'layouts/pagewithchildren', :locals => { :page => page } %>
Run Code Online (Sandbox Code Playgroud)


Gon*_*hen 7

你必须明确指定partial,否则,Rails会将locals视为params哈希,你可以直接在你的partial中访问本地[:page]而不是页面变量.

将您的代码更改为:

<%= render partial:'layouts/pagewithchildren', locals: {page: page} %>
Run Code Online (Sandbox Code Playgroud)