2017-11-10 289 views
0

我試圖初始化我緩存在application.rb中,使其得到應用在application.rb中

我application.rb中看起來初始化後填充使用Rails.cache爲:

config.cache_store = :memory_store 

config.after_initialize do 
    Rails.cache.write('key','value) 
    puts Rails.cache.read('key') 
end 

Rails.cache.read('key')在這裏給出一個空值

但是如果我把相同的代碼放在rails的其他ruby類中,它會給出預期的輸出。

例my_cache.rb

Rails.cache.write('key','value') 
    puts Rails.cache.read('key') # gives output value 

爲了提供更多的背景,我也得到這個怪異的行爲我Rails.cache在兩個application.rb中和my_cache.rb一個ActiveSupport::Cache::NullStore,在這裏我想應該是一個ActiveSupport::Cache::MemoryStore

我使用的鐵軌5.1.0

回答

0

緩存默認情況下在開發環境禁用。

因此我無法訪問緩存。

運行rake dev:cache創建一個空caching-dev.txt,從而使高速緩存在開發環境

這是development.rb怎麼看起來像

if Rails.root.join('tmp/caching-dev.txt').exist? 
    config.action_controller.perform_caching = true 
    config.action_mailer.perform_caching = false 
    config.cache_store = :memory_store 
    config.public_file_server.headers = { 
    'Cache-Control' => 'public, max-age=172800' 
    } 
else 
    config.action_controller.perform_caching = false 
    config.action_mailer.perform_caching = false 
    config.cache_store = :null_store 
end 
相關問題