Rubyでファイルを削除すると奇妙な状況が発生します。コードは正しく報告されているようですが、物理ファイルがハードドライブから削除されていません。私はrm path/to/file
コマンドラインで行うことができます-それは機能します。Railsコンソールを開いてFile.safe_unlinkファイルを開くこともできますが、これも機能します。Railsアプリ内で、実際のファイルを削除できません。
def destroy
Rails.logger.debug local_path #=> /Users/ryan/.../public/system/.../file.jpg
Rails.logger.debug File.exist?(local_path) #=> true
File.safe_unlink(local_path)
Rails.logger.debug File.exist?(local_path) #=> false
# yet the physical file actually STILL exists!
end
物理ファイルはGitリポジトリ内にあります(リポジトリは/ public / system /内に保存されています)。ruby-git gemを使用して、提供されているrmコマンドを使用してファイルを削除しようとしましたが、ファイルも削除されません。
テスト中にファイルのすべてのアクセス許可を開きましたが、まだ何も機能しません。これは、trueを返したFile.writable?(local_path)でも確認しました。
それがファイルの削除を妨げている可能性がある理由について何か考えはありますか?