ファイルのアップロードにはcarrierwave gemを使用しています。
ユーザーが画像に不適切なフラグを立て、管理者が画像を削除できるシステムを構築しました。私の知る限り、イメージに対して destroy を呼び出しても、テーブルからパス名が削除されるだけです。
実際にcarrierwaveにファイル自体を削除させる方法はあるのでしょうか?それとも、イメージパスを破棄したときに、Rails は自動的にファイルを削除する必要がありますか?
@mu_is_too_short が言ったように、File#delete を使用できます。
以下は、Rails アプリを少し調整することでヘルパーとして使用できるコード スニペットです。
def remove_file(file)
File.delete(file)
end
または、ファイル名を file に保存しているだけの場合
def remove_file(file)
File.delete("./path/to/#{file}")
end