根据https://guides.rubyonrails.org/layouts_and_rendering.html#using-partials上的信息框:
Rails还会在一个称为 由集合命名,以偏名的标题命名,后跟 _计数器。例如,当呈现集合@products时,部分 _product.html.erb 可以访问变量 product_counter 它索引了它在 封闭的视图。
但是,在我的局部引用计数器时,出现错误。这是父视图:
<%= render partial: 'comments/comment_template', collection: @post.comments, as: :c %>
这是 _comment_template.html.erb 的相关部分:
<%= comment_template_counter %>
这是错误:
undefined local variable or method `comment_template_counter' for #<#<Class: [etc.]
我想念什么?
答案 0 :(得分:2)
我认为文档不正确。正如{strong> pedroadame 在https://coderwall.com/p/t0no0g/render-partial-with-collection-has-hidden-index所指出的那样,在使用:as 选项时,我需要使用变量的名称而不是 partial 的名称。
此外,如果我在应用程序中的其他地方仅渲染了一次局部而不是作为集合,则需要通过检查计数器是否已定义来回避(相同)错误消息。
所以在我的部分中,这现在可行:
<%= c_counter if defined? c_counter %>