我已經編寫了一個cron作業來更新後臺中的某些緩存值(而不是在用戶等待時執行該操作)。我有一個運行該cron作業的場景,然後讀取緩存以查看值是否設置正確。如何爲單個黃瓜場景啓用Rails緩存
的問題是,Rails.cache.read("key")
正在恢復"Cache read: key\n"
沒有價值,如果我調試和檢查Rails.cache
我得到返回的ActiveSupport::Cache::BlackHoleStore
- 不是一個好兆頭。
這使得課程的意義,因爲下面是包含在我cucumber.env
:
config.action_controller.perform_caching = false
require File.join(RAILS_ROOT, 'lib', 'black_hole_store.rb')
config.cache_store = :black_hole_store
我想是在運行時忽略這一點 - 我們對一個個場景,這是需要的唯一一個緩存活動。我試圖從調試器提示沒有任何運氣以下:
(rdb:1) ActionController::Base.perform_caching = true
true
(rdb:1) ActionController::Base.perform_caching
true
(rdb:1) Rails.cache
#<ActiveSupport::Cache::BlackHoleStore:0x101b6dc60 @logger_off=false>
(rdb:1) ActionController::Base.cache_store = :memory_store
:memory_store
(rdb:1) Rails.cache
#<ActiveSupport::Cache::BlackHoleStore:0x101b6dc60 @logger_off=false>
任何人都知道如何做到這一點?
另一種方法是標記的場景(S)你想用@cache緩存運行。然後,您可以實現邏輯以在場景之前啓用緩存,然後在env.rb文件中禁用前塊和後塊。 – AlistairH 2011-05-05 10:03:09