Сегодня столкнулся с этим, сумел придумать более сжатое решение, которое должно работать для всех классов.
Rails.cache.instance_eval do
def fetch(key, options = {}, rescue_and_require=true)
super(key, options)
rescue ArgumentError => ex
if rescue_and_require && /^undefined class\/module (.+?)$/ =~ ex.message
self.class.const_missing($1)
fetch(key, options, false)
else
raise ex
end
end
end
Не уверен, почему [MemCacheStore]
не имеет вызова метода [MemCacheStore.const_missing]
и все вызывается обычным способом Rails-y. Но это должно подражать этому!
Приветствия
Chris