gpt4 book ai didi

ruby-on-rails - Rails 3 - 通知和错误 Flash 不能部分呈现

转载 作者:行者123 更新时间:2023-12-04 16:29:51 26 4
gpt4 key购买 nike

我正在尝试清理 application.html.erb , 通过将布局的部分移动到部分中。我有以下用于处理闪存错误/通知的代码:

<div id="flash">
<% if flash[:notice] %>
<h3 class="info_box"><%= flash[:notice] %></h3>
<% end %>
<% if flash[:error] %>
<h3 class="error_box"><%= flash[:error] %></h3>
<% end %>
</div>

此代码在 application.html.erb 中运行良好, 直到我将它移到一个名为“ _flash.html.erb”的文件中,并将其替换为以下内容:
<%= render 'layouts/flash' %>

在部分中,闪存哈希不是可识别的对象,并导致“当您没想到时,您有一个 nil 对象!”错误。

我已将代码移回 application.html.erb,一切正常。但是我找不到在部分中访问闪存哈希的答案。查看“渲染和布局”的 Rails 指南,我可以看到 render() 有多种方法。将变量传递给部分,但我没能弄清楚。有任何想法吗?

最佳答案

Goliatone 的解决方案似乎有效,但最终却没有。我发现这对我不起作用的原因是我将部分命名为 _flash .显然,Rails 使用部分的名称(没有 "_" 字符)为部分创建了一个局部变量。所以我有一个变量冲突。一旦我将部分名称更改为 _flash 以外的名称一切正常。我在这里找到了答案:Rails flash[:notice] always nil

关于ruby-on-rails - Rails 3 - 通知和错误 Flash 不能部分呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8023396/

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