Почему Rails.cache.read не может получить ничего в ApplicationController? - PullRequest
0 голосов
/ 02 мая 2009

У меня проблема с моим приложением Ruby on rails. Кэш Ruby on Rails в 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 показать это:

Кэш-память: данные / настройки

Настройка нагрузки (0,5 мс) SELECT * FROM> «Настройки» LIMIT 1
Запись в кэш: данные / настройки

Почему это происходит?

Ответы [ 2 ]

0 голосов
/ 02 мая 2009

Я - Джсон, меняли имя.

Но текущая настройка среды разработки:

config.action_controller.perform_caching             = true

Выполнение кэширования выполнено! Другие кеши могут работать. только этот кеш не работал (это в 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?

0 голосов
/ 02 мая 2009

Если вы запускаете приложение в режиме разработки, скорее всего, кэширование отключено. Проверьте в файле config / development.rb следующее:

config.action_controller.perform_caching             = false

Для проверки вашего кэширования вы можете либо изменить это значение на true, либо запустить в другой среде, где включено кэширование. Я часто создаю среду development_as_production, указывающую на db разработки, но с моими настройками production.rb.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...