我有一个部分_errors.html.haml
在我的应用程序中显示表单错误。部分中的代码:Rails 4渲染部分本地人
.errors
%ul
- errors.full_messages.each do |message|
%li= message
我从渲染项目/ new.html.haml部分作为
= render 'shared/errors', locals: { errors: @project.errors } if @project.errors.any?
的误差部分驻留在views/shared
目录。
但是当我尝试渲染错误部分时出现错误。
undefined local variable or method errors' for #<#<Class:0x0055895405bbc0> :0x00558951a80fe0>
如果我改变渲染行至
= render 'shared/errors', errors: @project.errors if @project.errors.any?
它的工作原理。为什么在这种情况下不使用locals
?
我回答了[一个问题](http://stackoverflow.com/questions/38129112/rails-undefined-local-variable-or-method-page/38142541#38142541)也有同样的问题。你可以查看[render]的来源(https://github.com/rails/rails/blob/8cb8ce98d903929342e2ca3a54a07ab5196baf93/actionview/lib/action_view/helpers/rendering_helper.rb#L26),看看它为什么不起作用。 – Thanh