2011-06-27 1 views
0

私はそのapiキーを使ってユーザーオブジェクトをキャッシュして読み込もうとしている。使用はうまくキャッシュされ、レールコンソールでキャッシュを読み取ることができますが、何故ならレールアプリで同じ正確なRails.cache.readを実行すると常にnilが返されます。Rails.cache.readはレールではnilを返すが、コンソールでは返さない。

私がやっていることの一例。これはbefore_filter関数内にあります。

def authKey 
    #?api=ce6f95a8bf7f9861330ede58f8972981 
    key = params[:api] 
    cu = Rails.cache.read(key) 

    #<do some logic> 
    logger.debug("CACHING USER #{key}") 
    Rails.cache.write(key, user) 

cuは常にゼロになりますが、オブジェクトがメモリキャッシュに存在しています。他の誰かがこの種の問題にぶつかっていますか?私は圧縮を有効にしてdalli gemを使用しています。

答えて

2

私は、レールキャッシングは、開発とテストと生産ではデフォルトでオフになっていると思います。 config/environments/development.rbをチェックして、config.cache_classesが何に設定されているかを確認してください。

-1

開発環境では、デフォルトでキャッシュがオフになっています。 config/environments/development.rbに 'config.action_controller.perform_caching = true'を追加すると、問題が解決されます。

http://guides.rubyonrails.org/caching_with_rails.html#basic-caching

+0

この設定は、全体としてのみRails.cacheない、コントローラにキャッシュに適用されます。 –

関連する問題