2012-03-07 59 views
0

我正在使用“web_app_theme”gem。问题是闪存错误和警告消息不起作用。Rails 3.“flash”在某些页面上不起作用

例如,在登录页面中它可以工作;但在忘记密码页面不起作用。我通过显示闪存<%= debug flash %>的内容来测试它。

这是我在登录页面获取...

!ruby/object:ActionDispatch::Flash::FlashHash 
      used: !ruby/object:Set 
      hash: 
       :alert: true 
      closed: false 
      flashes: 
      :alert: Invalid email or password. 
      now: !ruby/object:ActionDispatch::Flash::FlashNow 

但在忘记密码页面,我得到...

!ruby/object:ActionDispatch::Flash::FlashHash 
    used: !ruby/object:Set 
     hash: {} 
    closed: false 
    flashes: {} 
    now: !ruby/object:ActionDispatch::Flash::FlashNow 

我想,这可能是与不使用haml有关。在登录页面我使用haml,但在忘记密码页面中,我正在使用erb。我很困惑,因为'flash'的内容应该是相同的,不管格式如何,对吧?

回答

0

这对您使用的视图代码很少有帮助。

从您的问题,很明显,忘记密码页面中的闪存尚未设置。 无论是它还是它已被设置和删除。使用HAML或ERB不相关,因为两个页面中都存在Rails闪存。

检查相同的控制器代码并验证该页面上的闪存应该是什么。

此外,尽管没有硬性规定,但是在强烈建议在单个应用程序中只使用一个模板/视图引擎(erb或haml)。

0

在忘记密码页面,是flash对象被设置和页面然后呈现,或者是它被设置,然后重定向到页面发生?

flash的正常使用情况是,您分配给它,然后重定向到闪存存在的另一个页面。如果你想使用flash,然后在相同的动作显示它的内容(如然后渲染模板)

而不是写的(例如)

flash[:notice] = 'Foo Bar' 

你写

flash.now[:notice] = 'Foo Bar' 
+0

另外,闪存对象的预期内容是什么意思是忘记密码页面?并且是否存在您可以提供的任何控制器操作代码,或者是否全部包含在该宝石中? – 2012-03-07 19:55:27

相关问题