【问题标题】:Partial not accessing local variable部分未访问局部变量
【发布时间】:2014-02-18 03:25:31
【问题描述】:

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

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

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

undefined local variable or method `page'

我正在访问如下变量:

<%= page.title %>

那么我还需要做什么?

【问题讨论】:

    标签: ruby-on-rails-3 erb


    【解决方案1】:

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

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

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

    ?

    【讨论】:

    • 在 Rails 5 中,后一种方法不再适用(使用 locals
    【解决方案2】:

    你必须明确指定partial,否则,Rails 会将locals 视为params hash,你可以访问locals[:page] 但不能直接在partial 中访问page 变量。

    将您的代码更改为:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      • 2020-07-30
      • 2011-03-14
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      相关资源
      最近更新 更多