gpt4 book ai didi

ruby-on-rails - Rails 4 渲染局部与本地人

转载 作者:行者123 更新时间:2023-12-04 06:36:19 26 4
gpt4 key购买 nike

我有部分 _errors.html.haml在我的应用程序中显示表单错误。部分内的代码:

.errors
%ul
- errors.full_messages.each do |message|
%li= message

我将projects/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在这种情况下工作?

最佳答案

只是为了补充Khanh的答案。我已经试验了所有的变化。看来,如果您想使用术语 locals对于 Rails 部分渲染,您需要指定关键字 partial .

显式 所以这会起作用

= render partial: 'shared/errors', locals: { errors: @project.errors } if @project.errors.any?

隐式 或者简短的形式是
= render 'shared/errors', errors: @project.errors if @project.errors.any?

所以总而言之,如果您指定用于呈现部分的哈希键,则必须明确指定其所有键。否则,您将不必指定哈希键并让 rails 根据位置隐式计算出。

关于ruby-on-rails - Rails 4 渲染局部与本地人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38298364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com