我认为它们存储在cookie中 - 但不,cookie检查没有给我任何东西。会话也不存储它们。那么,我能在哪里找到它们呢?
我需要这个来直接设置它们(而不是通过flash
哈希)。
答案 0 :(得分:9)
它们存储in your session store。 rails 2.0的默认值是cookie存储,但请检查config/initializers/session_store.rb
以检查您是否使用了默认值以外的其他内容。
答案 1 :(得分:2)
答案 2 :(得分:0)
我正在寻找更详细的答案,最后我通过调查找到了答案。如果您的项目将其会话存储在Postgres数据库中,则以下内容适用。
注意:您的应用可能与多个数据库有连接。我仍然没有弄清楚Rails如何确定使用哪些连接。我的项目session_store.rb
是空的。
您将在sessions
表格中找到Flash消息。有一个名为data
的列,其中包含base64编码的字符串。
如果解码字符串,您将找到一个二进制blob,它不仅包含flash消息(以编组形式,因此它们可以表示任何类型的Ruby对象),还包含CSRF令牌和其他几个的东西。
整个blob实际上是一个编组的哈希表。它可以在Ruby中使用Marshal.load
进行解组,并且在进行任何更改后,可以使用Marshal.dump
对其进行重新编组。