2017-04-19 5 views
0

背景を汚れたファイルを取得します。ペーパークリップは、更新前の

私はRailsのアプリケーションを開発していますし、一部のモデルでは、私は添付ファイルを保存するためにpaperclip gemを使用しています。同じモデルでpublic_activity gemを使用してモデルの変更を追跡しています&私は、そのモデルに基づいて特定の条件で変更を元に戻すことができるように復元機能を準備しました。 ペーパークリップオプション:preserve_files => trueを使用すると、deleteの場合は古いファイルを取得するのが簡単ですが、updateの場合は、わかりません。

質問:

public_activity gemはすでにbefore_actionコールバックを使用していると私はペーパークリップファイル更新を除くすべてのダーティフィールドを処理することができます。 モデルを変更したり、追加のコールバックを追加したりすることなく、ダーティな更新ファイルを取得するにはどうすればよいですか?(複数のモデルでこの成果を使用し、元に戻す機能は一般的です。

注:私は、ファイルがまだあるかどうかを確認するFile.exist?(paperclip_attachment.path)を使用してい

が存在しないか、いや、それはpublic_activityupdateコールバック(私はそれがbefore_updateコールバックとほぼ同じだと思います)の場合はfalseを返します。私はちょうどpublic_activity更新コールバックで元に戻す機能を編集して汚れてファイルを取得するための簡単な方法をやってきました

答えて

0

dirty_file_path = Dir.glob(File.join(File.dirname(paper_clip_attachment.path), '*.*')).max { |a,b| File.ctime(a) <=> File.ctime(b) } 

paper_clip_attachment.pathは、ファイルへのパスが含まれますが、ファイル自体はまだ作成されていません。

上記のコードは、ファイルpaper_clip_attachment.pathのコンテナフォルダをチェックして、最新の作成済みファイルをチェックして、元に戻すステップで使用するパスを保存します。

関連する問題