Rails 3的行为真的很奇怪flash变量

时间:2012-09-28 07:37:44

标签: ruby-on-rails ruby ruby-on-rails-3

红宝石1.9.3-P194
Rails 3.0.9

我遇到了很多 flash 变量的奇怪行为。

我的控制器

class AdviceController < ApplicationController
    # POST /advice/save.js
    def save
        t = Logger.new(STDOUT)

        t.debug '+============================================'
        t.debug flash['advice-saving-error-msg']
        t.debug '+============================================'

        flash['advice-saving-error-msg'] = 'strange string'

        t.debug '============================================'
        t.debug flash['advice-saving-error-msg']
        t.debug '============================================'
    end
end

当我第一次询问保存操作 时,我会在调试中看到:

+============================================
nil
+============================================
============================================
strange string
============================================

当我问下次保存操作我在调试中看到!!!!!!!!!!!!:

+============================================
strange string
+============================================
============================================
strange string
============================================

这让我发疯了!为什么!!!

我希望得到:

+============================================
nil
+============================================
============================================
strange string
============================================

看起来Rails通过动作调用保存了flash变量 任何人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

使用Flash.now。基本闪光灯会将其保存,以便进行下一步操作。