我正在尝试使用growlflash并根据文档设置所有内容。 https://github.com/estum/growlyflash
我在渲染的partial.html.haml中有这一行
#header_message
= growlyflash_static_notices
该部分是从我的application.html.haml
加载的 = render 'shared/app_responsive_header'
但是当部分加载时,我收到此错误
undefined local variable or method `growlyflash_static_notices' for #<#<Class:0x007fe7fb09bd80>:0x007fe7fe889df0>
我是否渲染了部分错误?为什么我不能让它发挥作用。
答案 0 :(得分:1)
尝试:
= render partial: 'shared/app_responsive_header', locals: {growlyflash_static_notices: growlyflash_static_notices}
<强>更新强>
只是查看了其github repo的链接,这对您来说无法解决问题。 如果您查看其docs
,它会说:
对于非XHR请求,在其他javascripts内添加以下内容:
<%= growlyflash_static_notices %>
并且需要app / assets / javascripts / application.js中的glowlyflash
//= require growlyflash/growlyflash
并查看您的代码,您可能在body标签中调用它,根据文档错误。你需要在application.html.slim
中有这样的东西head
// other code
= growlyflash_static_notices
= stylesheet_link_tag "application", :media => "all" %>
= javascript_include_tag "application" %>
= csrf_meta_tags %>
并在application.js中添加此行
//= require growlyflash/growlyflash
答案 1 :(得分:1)
Partials无法访问其他模板中的局部变量,但它们可以访问实例变量。使用locals
选项在渲染时在局部变量中设置任何局部变量:
= render partial: 'shared/app_responsive_header', locals: {growlyflash_static_notices: growlyflash_static_notices}