Olá.
Se, por alguma razão, você decidir servir arquivos html usando s3 e gem de clipe de papel, você deve usar os campos de cabeçalho content-type e content-disposition ao enviar o arquivo html para o s3.
Exemplo de como usar s3_headers com gema de clipe de papel:
has_mongoid_attached_file :item,
s3_headers: proc { |instance|
{}.tap do |hash|
hash.merge!(
content_disposition: 'inline',
content_type: 'text/html'
) if File.extname(instance.path).include?('html')
end
}