まず、あなたが話しているのは必ずしも UJS ではなく、むしろRJS または Ruby JavaScript、または Ruby テンプレートからオンザフライで生成された JavaScript です。
UJS は、非常に (ほとんど?) 多くの場合、動的な JavaScript を介して行われるのではなく、静的な JavaScript によって操作される動的データを返すことによって行われます。これには多くの利点があります。このケースに関連する: これは、JavaScript が既にクライアント側で圧縮されている (そしておそらくキャッシュされている) ことを意味し、シリアル化されたデータをネットワークに送信しているだけです。
可能であれば、そのアプローチを使用することを検討することをお勧めします。
それができない場合は、以下のようなミドルウェアを使用して RJS アクションを自動的に縮小することができます (生の疑似コード バージョン)。ただし、注意して行ってください。また、すべてのリクエストを縮小する時間/コストと、より大きなファイルをクライアントに送信する時間/コストなど、縮小の利点がコストに見合うかどうかを検討する必要があります。
ミドルウェアの詳細については、ドキュメントを参照してください
module RJSMinifier
  def initialize(app)
    @app = app
  end
  def call(env)
    status, headers, response = @app.call(env)
    # pseudocode: if this is not an RJS request or the request did not
    # complete successfully, return without doing anything further
    if (this request is not RJS or status is not ok)
      return [status, headers, response]
    end
    # otherwise minify the response and set the new content-length
    response = minify(response)
    headers['Content-Length'] = response.length.to_s
    [status, headers, response]
  end
  def minify(js)
    # replace this with the real minifier you end up using
    YourMinifier.minify(js)
  end
end