アップロードされたファイルの名前を変更する

ちょっと待って。あなたが何をしようとしているのか、あまりよくわかりません。投稿にアップロードされた際に表示される名前を変更したいということでしょうか?もしそうなら、以下のようなコマンドを試してみるのがよいかもしれません。

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 命名ルールを持っていました。それは他の誰とも違っていました。妻もまた、自分なりのルールを持っていると思います。おそらく、あなたがファイル名を「正しく」設定したとしても、誰も気に入らないでしょうね。:wink: