#ruby-on-rails
#рубин на рельсах
Вопрос:
Я попытался использовать ActiveSupport::Кэш::Хранилище файлов в классе модели:
@backend_cache = ActiveSupport::Cache::FileCache.new Rails.root.join("tmp", "cache")
Программа сообщает об ошибке имени
NameError: uninitialized constant ActiveSupport::Cache::FileCache Did you mean? FileTest
Я добавил
require "active_support" require "active_support/core_ext"
Он все еще показывает ошибку. Я знаю, что могу использовать Рельсы.Кэш для этой цели, но объект, который я кэшировал, должен находиться на диске, который отличается от других частей приложения.
Приложение написано на Rails 6.
Комментарии:
1. Я думаю, у вас опечатка:
::FileStore.new
вместоFileCache
Ответ №1:
Я попробовал это в консоли rails 6, и это работает просто отлично.
@backend_cache = ActiveSupport::Cache::FileStore.new(Rails.root.join("tmp", "cache")) @backend_cache.write('x', 1) # =gt; true @backend_cache.read('x') # =gt; 1
Это просто опечатка, о которой я упоминал в комментарии. Это ::FileStore.new
вместо того, чтобы ::FileCache.new