_errors.html.haml
という部分があり、私のアプリケーションでフォームエラーを表示しています。部分的な内部コード:Rails 4は部分的にローカルでレンダリングされます
.errors
%ul
- errors.full_messages.each do |message|
%li= message
私はviews/shared
ディレクトリ内のエラー部分が存在
= render 'shared/errors', locals: { errors: @project.errors } if @project.errors.any?
としてプロジェクト/ new.html.hamlから部分をレンダリングしています。
エラーを部分的にレンダリングしようとするとエラーが発生します。
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)にも同じ問題があります。 [レンダリング](https://github.com/rails/rails/blob/8cb8ce98d903929342e2ca3a54a07ab5196baf93/actionview/lib/action_view/helpers/rendering_helper.rb#L26)のソースを確認して、動作しない理由を確認できます。 – Thanh