前提は、

class Model < ActiveRecord::Base
  mount_uploader :file, FileUploader
end
class FileUploader < CarrierWave::Uploader::Base
  storage :fog
end

こんな感じ。

model = Model.take
model.file.url

こうすればS3のURLが取れる。
が、このままだとブラウザ内で開かれる。まぁ別にいいんだけど、要件ってやつがあってね。

いろいろやってみたけど、最終的に、

model.file.url(query: { 'response-content-disposition' => 'attachment' })

に落ち着いた。

参考

http://stackoverflow.com/questions/24947512/rails-carrierwave-s3-get-url-with-content-disposition-header