据我所知,闪存应存储在会话中,
我已经清除了浏览器缓存,并重启了rails服务器。
闪光灯无法正常工作。即使我使用flash.keep
它根本不起作用。
我在哪里错过了?
我在root_path方法中发现,我检查了会话变量
闪光灯被丢弃了,我对此一无所知。
[1] pry(#<WelcomeController>)> session
{
"_csrf_token" => "y+QzSyv23dzSWEcf+9D+i49zkC748j++gwFVjafN7A0=",
"flash" => {
"discard" => [
[0] "alert",
[1] "error"
],
"flashes" => {
"alert" => "尚未有該航線資訊,請選擇不同出發地與目的地或者日期",
"error" => "Insufficient rights!"
}
}
}
Rails.application.config.session_store :cookie_store, key: '_websites_session'
- flash.each do |name, msg|
= content_tag :div, msg.html_safe, class: "panel-title panel-info"
flash[:alert] = t('no_available_routes')
redirect_to root_url, :notice => "Successfully checked in"
config.action_controller.perform_caching = false
# config.cache_store = :mem_cache_store
config.cache_store = :dalli_store, ENV['MEMCACHE_DB'], { :pool_size => 10 ,compress: true }
答案 0 :(得分:0)
我的问题找到了一个丑陋的解决方法,
我仍然可以在视图中获取会话中的Flash数据,
但我仍然想知道如何在我的情况下使用正常的flash
变量
由于
- if session["flash"]
- session["flash"]["flashes"].each do |name, msg|
- if 'alert' == name
= content_tag :div, msg.html_safe, class: "panel-warning"
- else
= content_tag :div, msg.html_safe, class: "panel-info"