Rails 3 – 通知和错误闪存无法部分呈现
我试图通过将部分布局移动到局部来清理application.html.erb
。 我有以下代码来处理闪存错误/通知:
这段代码在application.html.erb
运行良好,直到我将其移动到一个名为“ _flash.html.erb
”的文件中,并将其替换为以下内容:
在部分中,闪存哈希不是一个可识别的对象,并导致“当你没想到它时,你有一个零对象!” 错误。
我已将代码移回application.html.erb,一切都很好。 但我无法找到部分访问闪存哈希的答案。 看看Rails指南中的“渲染和布局”我可以看到render()
有多种方法将变量传递给partial,但是我没有成功地搞清楚它。 有任何想法吗?
Goliatone的解决方案似乎有效,但最终却没有。 我发现这不适合我的原因是我已经命名了我的部分_flash
。 显然Rails使用部分名称为部分创建局部变量(不带"_"
字符。)所以我有一个变量冲突。 只要我将部分的名称更改为_flash
以外的_flash
内容,一切_flash
正常运行。 我在这里找到了答案: Rails flash [:notice]总是零
您可以在布局中对flash进行条件检查,如果存在,则渲染部分:
<%= render 'layouts/flash' unless flash.nil?%>
然后,如果它存在,它将按预期呈现。
- 配置Warden以用于RSpec控制器规范
- Rails .reject将类型ActiveRecord :: Relation转换为类型数组
- 是否可以在Rails3中使用multipart form => true并使用remote => true
- 如何在Rails应用程序中避免竞争条件?
- 如何使用bootstrap的模态显示“删除确认对话框”? 不喜欢浏览器的默认值
- 启用local-infile,将数据从rails加载到远程mysql
- 无法在rails中validationCSRF令牌的真实性
- 在RSpec中需要lib,Ruby 1.9.2带来“没有这样的文件加载”
- Rails 3.0.0.beta和Facebooker:其他人看到以下内容?