У меня есть API, в которых я хочу сохранить некоторые значения, которые будут доступны между каждым методом API, поэтому я пытаюсь использовать ActiveSupport :: Cache :: MemoryStore.Возможно, я неправильно использую MemoryStore (никогда не использовал, не могу найти для него конкретное руководство)
Правильно ли я использую MemoryStore?Похоже, это должно быть очень просто, но не может сохранить какое-либо значение.
class MyController
# 1st API handler /post
def first
@cache = ActiveSupport::Cache::MemoryStore.new() if @cache.nil?
@cache.write('shared_val', params['user_key'])
end
# 2nd API handler /post
def second
@cache = ActiveSupport::Cache::MemoryStore.new() if @cache.nil?
saved_val = @cache.read('shared_val')
puts "#{saved_val}" # nil?????
end
Я также попробовал несколько примеров, которые я видел в SO-ответах, но все еще не могу сохранить значение.
# In config file
config.cache_store = :memory_store
# 1st API handler /post
def first
Rails.cache.write("ABC", "abc")
check_val = Rails.cache.read('ABC')
puts "VALUE: #{check_val}" # shows correct 'abc'
end
# 2nd API handler /post
def second
Rails.cache.fetch("ABC") # gets nil, why???
Rails.cache.read("ABC) # also nil
end