Ruby on rails 闪存信息存储在哪里?

Ruby on rails 闪存信息存储在哪里?,ruby-on-rails,ruby,flash-message,Ruby On Rails,Ruby,Flash Message,我以为它们是储存在饼干里的——但不,饼干什么也没给我。会话也不存储它们。那么,我在哪里可以找到它们 我需要这个来直接设置它们(不是通过flashhash)。根据,它存储在会话中 请注意,如果会话被禁用,则只有flash.now可以工作 使用flash.now时,您的值在下一个请求中不可用。它们将被存储。rails 2.0的默认版本是cookie存储,但请检查config/initializers/session_store.rb以检查您是否使用了默认版本以外的其他版本。我正在寻找更详细的答案,最

我以为它们是储存在饼干里的——但不,饼干什么也没给我。会话也不存储它们。那么,我在哪里可以找到它们

我需要这个来直接设置它们(不是通过
flash
hash)。

根据,它存储在会话中

请注意,如果会话被禁用,则只有flash.now可以工作


使用flash.now时,您的值在下一个请求中不可用。

它们将被存储。rails 2.0的默认版本是cookie存储,但请检查
config/initializers/session_store.rb
以检查您是否使用了默认版本以外的其他版本。

我正在寻找更详细的答案,最后通过调查找到了答案。如果项目将其会话存储在Postgres数据库中,则以下内容适用

注意:您的应用程序可能连接到多个DB。我还没有弄清楚Rails是如何决定使用哪种连接的。我的项目的
会话存储.rb
为空

您可以在
会话
表中找到flash消息。有一个名为
data
的列,其中包含一个base64编码字符串

如果对字符串进行解码,您将发现一个二进制blob,它不仅包含flash消息(以编组形式,因此它们可以表示任何类型的Ruby对象),还包含CSRF令牌和其他一些内容


整个blob实际上是一个编组的哈希表。它可以在Ruby中用
marshall.load
解封,在进行任何更改后,可以用
marshall.dump
重新解封。您需要设置它们,但不使用flash变量。这有意义吗?只是想了解你想要实现什么。如果它们存储在cookies中,我会直接设置它们:
cookies[:flash][:notice]=“Hello World!”
。但它们被储存在其他地方。所以问题是:它们存储在哪里:)来自railsguides:flash是“会话的特殊部分”,每次请求都会清除它。而且,所有会话存储都使用cookie为每个会话存储唯一的ID(您必须使用cookie,Rails将不允许您在URL中传递会话ID,因为这样不太安全)。我认为,如果我们只使用cookieStore存储会话数据,那么flash将存储在Cookie中。通常我们只使用cookieStore,所以我认为flash消息应该在cookie[:session]中的某个地方。我是rails的新手。如果我错了,请纠正我。我相信您是想链接到,
ActionController::Flash
仅存在于rails 1.0中。