Cacheable-flash 能够和页面缓存一起工作获取 Rails 闪存对象。这个插件通过在cookie 中使用 javascript 来使用高等级页面缓存,而不是在 Rails 视图模版中使用高等级页面缓存。同时,Flash 内容能够转换成 JSON 包;通过控制器中的 after_filter 指令或者是你应用程序中 Rack 中间层发出信号,Flash内容也能在cookie中被取代。
Cacheable-flash 作为一个过滤器使用的时候,你的控制器中必须要包含 CacheableFlash 模块。无论它是否在你的控制器中发生动作指令,你都不能混淆了闪存信息中的 JS 和 HTML 的信息。
请注意,最好刷新页面清除闪存信息,因为cookie 上可能会保存未删除之前的内容,页面也将显示未删除之前的内容。
require "cacheable_flash/test_helpers" class TestController < ActionController::Base def index flash["notice"] = "In index" end end describe TestController, "#index" do include CacheableFlash::TestHelpers it "writes to the flash cookie" do get :index flash_cookie["notice"].should == "In index" end end