Renomeando arquivos enviados

Espere. Não tenho certeza do que você está tentando fazer. É para alterar o nome que as pessoas veem nos posts em que são carregados? Se for esse o caso, talvez você queira fazer algo como

rake posts:remap["old-name.pdf","newname.pdf"]

Como descrito em Substituir uma string em todos os posts. Acredito que, para o seu caso, o nome original do arquivo no modelo Upload não importa muito.

Mas você pode alterá-lo com

u=Upload.find_by(original_filename: 'mypretty-w9.pdf')
u.original_filename='better-name.pdf'
u.save

Tentei reconstruir um post com esse upload e nada aconteceu.

EDIT:

def rename_upload(old_name, new_name)
  u=Upload.find_by(original_filename: old_name)
  u.original_filename=new_name
  u.save
end

Se você colar isso, poderá executar

rename_upload('name.pdf','better-name.pdf')

Isso corrigirá o problema para que os downloads recebam o nome de arquivo melhor.

Na minha vida anterior como acadêmico, eu tinha minha maneira específica de nomear meus PDFs, diferente de qualquer outra pessoa; tenho certeza de que minha esposa tem a dela. Acredito que ninguém vai gostar dos seus nomes de arquivo, mesmo quando você os colocar “certos”. :wink: