ruby-on-rails - rails : When the "flash" hash becomes empty?

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

MyControllerindex页面上,我将一个值设置为flash[:notice]:

class MyController < ApplicationController
  def index
    flash[:notice] = "my message"
    ...
  end
end

我确实看到“我的消息”按预期显示。

但是,当我单击此页面上指向 MyOtherControllerindex 页面的链接时,我仍然看到“我的消息”:

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/

相关文章:

ruby-on-rails-3 - 在液体布局中渲染部分 (Rails3)

ruby-on-rails - 如何使用 ruby​​ on rails 查看 UTC 时间

ruby-on-rails - 从 asset_host 配置中删除/assets/path

ruby-on-rails - 如何使用重新处理将已上传的回形针图像调整为 s3? ( rails )

ruby-on-rails - ruby rails : making id in column as an alias?

ruby-on-rails - 之前的工厂女孩​​(:create) callback not creating associations

Javascript 自动聚焦 ruby​​ 表元素

ruby-on-rails - 如何检测当前工作目录是否为 Rails 项目根目录

ruby-on-rails - 根据用户完成的喜欢对 Rails 中的项目列表进行排序

javascript - 如何在rails 3中渲染partial.js