部分方法的未定义局部变量。 Flash通知

时间:2014-09-12 16:32:33

标签: ruby-on-rails ruby gem haml

我正在尝试使用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>

我是否渲染了部分错误?为什么我不能让它发挥作用。

2 个答案:

答案 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}