我目前的解決方法是啓用perform_caching
然後重新加載控制器:
class ProjectsCachingTest < ActionController::IntegrationTest
def setup
# force the controller to be reloaded when caching is enabled
ActionController::Base.perform_caching = true
load "projects_controller.rb"
end
def teardown
# undo the actions above
ActionController::Base.perform_caching = false
load "projects_controller.rb"
end
end
在最新版本的Rails 2中,遇到的問題與類方法caches_action
和caches_page
有關。他們都創建了一個環繞過濾器來執行緩存,但只有在啓用perform_caching
時纔會執行緩存。
因此,在運行時修改perform_caching
不會重新創建期望的過濾器。上面的例子是強制你的控制器重新評估的一種方法。
我想在Rails 3.1.8中使用它,它似乎不工作。每次請求都會重新生成頁面。 – 2012-10-09 09:25:56