Ruby on rails 如何使用flash[]存储电子邮件

Ruby on rails 如何使用flash[]存储电子邮件,ruby-on-rails,ruby,Ruby On Rails,Ruby,我基本上了解flash[]的功能,所以我不认为这是问题所在,但我想我在某个地方有语法错误?文档和谷歌没有帮助,我也找不到类似的问题。我不知道我做错了什么 我正在尝试将数据分配给flash[],如下所示: flash[:successful_submission] = {email: owner.email} 但当我试图取回它时,它不在那里: flash[:successful_submission][:email] 但当我检查时: flash[:successful_submission]

我基本上了解flash[]的功能,所以我不认为这是问题所在,但我想我在某个地方有语法错误?文档和谷歌没有帮助,我也找不到类似的问题。我不知道我做错了什么

我正在尝试将数据分配给flash[],如下所示:

flash[:successful_submission] = {email: owner.email}
但当我试图取回它时,它不在那里:

flash[:successful_submission][:email] 
但当我检查时:

flash[:successful_submission].inspect
我得到:

{"email"=>"email@address.com"}

这里发生了什么事?

来自@anothermh的评论:

flash[:successful_submission]['email']

我想这是可行的,因为它是一个散列,而不是一个对象

你什么时候在同一个动作或下一个动作中检查flash[:successful_submission],它是分配给它的动作的下一个动作。我很确定问题在于我用来分配或检索数据的格式/语法,与flash无关[]看起来你的哈希已经字符串化了,你有没有尝试过
flash[:成功提交]['email']
(而不是
[:email]
)?@anotherm谢谢!就这样。这是一个细微的差别,很难在谷歌上搜索到……而且Rails处理查询字符串参数和POST(等)参数的方式没有区别。哈希可以为键提供任何内容。使用字符串时,可以将其字符串化(
“email”
)或符号化(
:email
)。你展示的
{email:owner.email}
的例子是符号化的,所以我不确定为什么它在放入flash后会被字符串化,但你可以分辨出来,因为当你检查它时,它看起来像
{“email”=>”email@address.com“}
。可能是Rails的问题。您可以使用{code>{email:owner.email}。使用{u interference\u access来允许您使用字符串或符号访问。@anotherm哈希可以有任何内容,但是当您序列化它以便将其存储在cookie中时,许多内容会从符号转换为字符串。这对我来说很有意义!