Rails.cache.fetch кеширование в разработке - PullRequest
9 голосов
/ 23 января 2012

Использование Rails.cache.fetch, как показано ниже, является кэшированием даже в моей среде разработки (с отключенным кэшированием):

@boat_features = Rails.cache.fetch("boat_features", expires_in: 10.minutes) do
  BoatFeature.all
end

Кто-нибудь сталкивался с этим раньше?

Ответы [ 2 ]

8 голосов
/ 23 января 2012

Это нормально. Такого рода кэширование не отключено в разработке. В предыдущем приложении, где это было проблемой, мы использовали хранилище памяти, а затем добавили промежуточное программное обеспечение, которое выполняло Rails.cache.clear после каждого запроса.

Что-то вроде

config.middleware.use ClearCache

в разработке. Rb

и ваше промежуточное ПО ClearCache должно выглядеть примерно так:

class ClearCache
  def initialize(app)
    @app = app
  end

  def call(env)
    @app.call(env)
  ensure
    Rails.cache.clear
  end
end

В Rails 3.2 есть также ActiveSupport::Cache::NullStore

7 голосов
/ 03 апреля 2015

У меня была такая же проблема. Я много работал, потом придумал это простое решение. В вашем конфигурационном файле разработки config/environments/development.rb добавьте эти настройки

config.perform_caching = false config.cache_store = :null_store

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