Hoje eu estava pesquisando sobre esse assunto, e encontrei muitos resultados que gostaria de compartilhar com vocês.
Baixe a imagem para a pasta de download
Aqui você pode usar o download
atributo HTML na sua tag de link ( a
tag), então, se você usar a gema de libélula, você escreverá algo semelhante a
<% image_url = "#{request.protocol}#{request.host_with_port}#{@user.image.url}" %>
<a href="<%= image_url %>" download="<%= @user.image_name %>" class="btn btn-block btn-primary">Download Image</a>
Aqui você pode encontrar mais informações sobre o download
atributo
Baixe a imagem imediatamente
Se você quiser fazer o download da imagem quando a página for aberta ou se quiser contar quantas vezes a imagem foi baixada, você pode anexar este código à sua ação
image_url = "#{request.protocol}#{request.host_with_port}#{@user.image.url}"
send_file(
image_url,
filename: @user.image_name,
type: "image/png"
)
Claro que você pode alterar o tipo de imagem passando a opção de formato para o método de polegar
@user.image.thumb("", 'format' => 'png')
send_file
método não funciona apenas com imagens, ele funciona com todos os tipos de arquivo, você apenas tem que alterar a opção de tipo.