Aspetta. Non sono sicuro di capire cosa stai cercando di fare. Si tratta di cambiare il nome che le persone vedono nei post in cui sono stati caricati? Se è così, forse vorresti fare qualcosa come
rake posts:remap["old-name.pdf","newname.pdf"]
Come descritto in Sostituisci una stringa in tutti i post. Credo che, per le tue esigenze, il nome originale del file nel modello Upload non sia davvero importante.
Ma puoi modificarlo con
u=Upload.find_by(original_filename: 'mypretty-w9.pdf')
u.original_filename='better-name.pdf'
u.save
Ho provato a rigenerare un post con quel caricamento e non è successo nulla.
MODIFICA:
def rename_upload(old_name, new_name)
u=Upload.find_by(original_filename: old_name)
u.original_filename=new_name
u.save
end
Se incolli questo codice, puoi eseguire
rename_upload('name.pdf','better-name.pdf')
Così risolverai il problema in modo che i download abbiano il nome di file migliore.
Nella mia vita passata come accademico, avevo il mio modo specifico di nominare i miei PDF, diverso da quello di chiunque altro; sono quasi sicuro che anche mia moglie abbia il suo. Immagino che a nessuno piaceranno i tuoi nomi di file, anche quando li avrai “corretti”. ![]()