Погодите. Я не совсем уверен, что вы пытаетесь сделать. Речь о том, чтобы изменить имя, которое видят пользователи в постах, где эти файлы загружены? Если так, то, возможно, вам стоит выполнить что-то вроде:
rake posts:remap["old-name.pdf","newname.pdf"]
Как описано в статье Заменить строку во всех постах. Думаю, что для ваших целей оригинальное имя файла в модели Upload не имеет особого значения.
Но вы можете изменить его вот так:
u=Upload.find_by(original_filename: 'mypretty-w9.pdf')
u.original_filename='better-name.pdf'
u.save
Я попытался пересобрать пост с этой загрузкой, но ничего не произошло.
РЕДАКТИРОВАНИЕ:
def rename_upload(old_name, new_name)
u=Upload.find_by(original_filename: old_name)
u.original_filename=new_name
u.save
end
Если вы вставите этот код, то сможете выполнить:
rename_upload('name.pdf','better-name.pdf')
Это исправит ситуацию так, что при загрузке файлы будут получать более подходящее имя.
В прошлой жизни, когда я был академиком, у меня был свой особый способ именования PDF-файлов, который отличался от всех остальных; я почти уверен, что у моей жены тоже есть свой. Думаю, что даже когда вы приведёте имена файлов «как надо», никто не останется доволен. ![]()