如果使用集合渲染部分,则为Rails Guides :,部分将使用部分名称访问渲染记录。但是我的偏见是错误:
以下是模板:= render "todo", collection: @ntodos, as: 'todo' || "none"
这里是_todo.html.haml partial:
%div
%h3= todo.title
%div
答案 0 :(得分:2)
tldr;你需要render partial: 'todo', collection: ...
。
这不是你如何呈现一个部分的集合,这是你如何渲染局部并将局部传递给它。
渲染部分有两种不同的不兼容语法。
第一种方式是render(options_hash)
。它看起来像这样:
render partial: 'template', locals: { var1: value1 }
第二种方式(您已经使用过)无法呈现集合。它使用render(template_name, locals_hash)
签名,如下所示:
render 'template', var1: value1
您的调用使用第二种形式,呈现todo
并将两个名为collection
和as
的本地文件传递给它。
如果要渲染集合,则需要使用render partial: 'todo', collection: @ntodos, as: 'todo'