Any way to set Cache-Control: max-age without private/public?

It seems there are no ways to set “Cache-Control: max-age=n” header without private/public directive. expires_in also does not provide such option.

I tried manually modify headers, but overrides private.

# frozen_string_literal: true

require "bundler/inline"

gemfile(true) do
  source "https://rubygems.org"

  git_source(:github) { |repo| "https://github.com/#{repo}.git" }

  gem "rails", github: "rails/rails", branch: "main"
end

require "action_controller/railtie"

class TestApp < Rails::Application
  config.root = __dir__
  config.hosts << "example.org"
  secrets.secret_key_base = "secret_key_base"

  config.logger = Logger.new($stdout)
  Rails.logger  = config.logger

  routes.draw do
    get "/" => "test#index"
  end
end

class TestController < ActionController::Base
  include Rails.application.routes.url_helpers

  def index
    response.headers["Cache-Control"] = "max-age=60"
    render plain: "Home"
  end
end

require "minitest/autorun"
require "rack/test"

class BugTest < Minitest::Test
  include Rack::Test::Methods

  def test_returns_success
    get "/"
    assert_equal "max-age=60", last_response.headers["Cache-Control"]
  end

  private
    def app
      Rails.application
    end
end

Result

# Running:

I, [2022-06-27T16:51:22.390485 #51977]  INFO -- : Started GET "/" for 127.0.0.1 at 2022-06-27 16:51:22 +0900
F

Failure:
BugTest#test_returns_success [cache_control.rb:45]:
Expected: "max-age=60"
  Actual: "max-age=60, private"


rails test cache_control.rb:43



Finished in 0.224228s, 4.4597 runs/s, 4.4597 assertions/s.
1 runs, 1 assertions, 1 failures, 0 errors, 0 skips

While reverse proxies like Nginx can remove public/private headers, I prefer to complete with Rails.