在MyController
的index
页面上,我将一个值设置为flash[:notice]
:
class MyController < ApplicationController
def index
flash[:notice] = "my message"
...
end
end
我确实看到“我的消息”
按预期显示。
但是,当我单击此页面上指向 MyOtherController
的 index
页面的链接时,我仍然看到“我的消息”
:
class MyOtherController < ApplicationController
def index
puts "----------------------------------------"
puts flash[:notice] # => "my message"
puts "----------------------------------------"
end
end
我认为 flash[:notice]
每次请求都会变成空,但这里情况并非如此。清空 flash[:notice]
的正确方法是什么?
最佳答案
您可以使用flash.now[:notice] = ...
代替。当您不希望 Flash 消息持续到下一个请求时,flash.now
非常有用。通常,redirect_to
遵循 flash[:notice] = ...
,这就是为什么它会针对一个请求进行持久化
关于ruby-on-rails - rails : When the "flash" hash becomes empty?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4848559/