2009-05-02 10 views
0

Ruby on Railsアプリケーションに問題があります。 ApplicationControllerのRuby on Railsキャッシュ。 データは取得できませんが、存在します。Rails.cache.readがApplicationControllerで何も取得できないのはなぜですか?

class ApplicationController < ActionController::Base 
    before_filter :init 

    def init 
    @setting = Rails.cache.read("data/setting") 
    if not @setting 
     @setting = Setting.find_create 
     Rails.cache.write("data/setting",@setting) 
    end 
    end 
end 

Development.logこれを示しています。

キャッシュを読む:データを/> "設定" LIMIT 1
キャッシュ書き込み* FROMロード(0.5msの)SELECTの設定

設定:データを/設定

どうしてですか?

答えて

0

開発モードでアプリケーションを実行している場合は、キャッシュがオフになっている可能性があります。次のためにあなたのconfig/development.rbファイルをチェックしてください:

config.action_controller.perform_caching    = false 

は、あなたのキャッシュをテストするには、この値をtrueに変更したり、キャッシュがオンになっている別の環境で実行することができます。私はしばしばdevelopment_as_productionという環境を作成しますが、development dbを指していますが、production.rbの設定を使用しています。

0

私はJsonです。名前が変更されました。

しかし、現在の設定の開発環境は次のとおりです。

config.action_controller.perform_caching    = true 

perform_cachingが上TRUNました! 他のキャッシュは機能します。このキャッシュだけが動作しませんでした(これはApplicationControllerにあります)。

@setting = Rails.cache.read("data/setting") 
if not @setting 
    @setting = Setting.find_create 
    Rails.cache.write("data/setting",@setting) 
end 

なぜですか? Rails.cache.readはApplicationControllerで動作できませんか?

関連する問題