Meine derzeitige Abhilfe besteht darin, Folgendes zu aktivieren perform_caching
und laden Sie den Controller neu:
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
In der neuesten Version von Rails 2 hat das Problem, das Sie haben, mit den Klassenmethoden zu tun caches_action
y caches_page
. Beide erstellen einen Around-Filter, um die Zwischenspeicherung durchzuführen, aber nur, wenn perform_caching
aktiviert ist.
Durch die Änderung der perform_caching
zur Laufzeit nicht die erwartete Umgebung von Filtern wiederherstellt. Das obige Beispiel ist eine Möglichkeit, Ihren Controller zu zwingen, neu ausgewertet werden.