Rails 4缺少局部变量局部变量

时间:2014-08-21 05:33:53

标签: ruby-on-rails ruby-on-rails-4 erb

如果使用集合渲染部分,则为Rails Guides :,部分将使用部分名称访问渲染记录。但是我的偏见是错误:

以下是模板:= render "todo", collection: @ntodos, as: 'todo' || "none"

这里是_todo.html.haml partial:

%div 
    %h3= todo.title
    %div

1 个答案:

答案 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并将两个名为collectionas的本地文件传递给它。

如果要渲染集合,则需要使用render partial: 'todo', collection: @ntodos, as: 'todo'

明确使用第一个表单