在index
的{{1}}页面上,我将值设置为MyController
:
flash[:notice]
我确实看到class MyController < ApplicationController
def index
flash[:notice] = "my message"
...
end
end
按预期显示。
但是,当我点击此页面上指向"my message"
的{{1}}页面的链接时,我仍然会看到index
:
MyOtherController
我认为"my message"
在每次请求时都会变空,但在这种情况并非如此。清空class MyOtherController < ApplicationController
def index
puts "----------------------------------------"
puts flash[:notice] # => "my message"
puts "----------------------------------------"
end
end
的正确方法是什么?
答案 0 :(得分:8)
您可以使用flash.now[:notice] = ...
代替。当您不希望Flash消息持续到下一个请求时,flash.now
非常有用。通常redirect_to
跟在flash[:notice] = ...
之后,这就是为什么它会被保留为一个请求
答案 1 :(得分:3)
大多数情况下,这条规则应该是正确的:
将flash[:notice]
与redirect
将flash.now[:notice]
与render