diff --git a/frameworks/Ruby/rails/app/controllers/hello_world_controller.rb b/frameworks/Ruby/rails/app/controllers/hello_world_controller.rb index d4582e18c02..526d850e94c 100644 --- a/frameworks/Ruby/rails/app/controllers/hello_world_controller.rb +++ b/frameworks/Ruby/rails/app/controllers/hello_world_controller.rb @@ -21,8 +21,9 @@ def query end def cached_query - items = Rails.cache.fetch_multi(*ALL_IDS.sample(query_count)) do |id| - World.find(id).as_json + keys = ALL_IDS.sample(query_count).map { "world_#{_1}" } + items = Rails.cache.fetch_multi(*keys) do |id| + raise "Could not find World with id: #{id} in cache" end render json: items.values diff --git a/frameworks/Ruby/rails/config/application.rb b/frameworks/Ruby/rails/config/application.rb index 8f5abd7901b..19ca9a41572 100644 --- a/frameworks/Ruby/rails/config/application.rb +++ b/frameworks/Ruby/rails/config/application.rb @@ -47,5 +47,11 @@ class Application < Rails::Application config.middleware.delete Rails::Rack::Logger config.active_support.isolation_level = :fiber if defined?(Falcon) + + config.to_prepare do + HelloWorldController::ALL_IDS.each do |id| + Rails.cache.write("world_#{id}", World.find(id).as_json, expires_in: 1.day) + end + end end end