Вы можете хранить данные в кэше по умолчанию для rails или, как кажется, наиболее популярный вариант, использовать mem_cache_store, который использует memcached.
#production.rb
config.cache_store = :mem_cache_store, '127.0.0.1:11211', {:namespace => "production"}
#some_helper.rb
def get_some_data
Rails.cache.fetch('some_reference'){Model.find_some_data}
end
Смотрите также:
http://guides.rubyonrails.org/caching_with_rails.html
Кроме того, если вы используете пассажира, вам нужно сделать следующее:
if defined?(PhusionPassenger)
PhusionPassenger.on_event(:starting_worker_process) do |forked|
if forked
Rails.cache.instance_variable_get(:@data).reset if Rails.cache.class == ActiveSupport::Cache::MemCacheStore
else
# No need to do anything.
end
end
end