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)
那我还需要做什么呢?
我不是百分百肯定,但也不是
<%= render 'layouts/pagewithchildren', :page => page %>
Run Code Online (Sandbox Code Playgroud)
要么
<%= render :partial => 'layouts/pagewithchildren', :locals => { :page => page } %>
Run Code Online (Sandbox Code Playgroud)
?
你必须明确指定partial,否则,Rails会将locals视为params哈希,你可以直接在你的partial中访问本地[:page]而不是页面变量.
将您的代码更改为:
<%= render partial:'layouts/pagewithchildren', locals: {page: page} %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2393 次 |
| 最近记录: |