框架如何将
flash
消息与用户关联?
它如何知道何时应用它,即在重定向之后?
想象一下这样一种情况,在添加
flash
和加载用户重定向到的页面之间,出现了一些完全未连接的 Ajax 请求。 Rails 会对 Ajax 请求应用 Flash 通知吗?
我不认为闪存哈希与用户相关。它们存储在用户浏览器上的会话 cookie 中,以便在下一个请求时保留。对于该请求之后的请求,闪存哈希会自行清除。
https://guides.rubyonrails.org/action_controller_overview.html#the-flash
闪存是会话的一个特殊部分,它会随着每个请求而被清除。
而且,session本身如何存储是由session store
决定的ActionDispatch::Session::CookieStore - 将所有内容存储在客户端上。
ActionDispatch::Session::CacheStore - 将数据存储在 Rails 缓存中。
ActionDispatch::Session::MemCacheStore - 将数据存储在 memcached 集群中(这是遗留实现;考虑使用 CacheStore 代替)
ActionDispatch::Session::ActiveRecordStore - 将数据存储在数据库中 使用活动记录
(requires the activerecord-session_store gem) A custom store or a store provided by a third party gem