2017-04-19 47 views
0

背景:回形針獲取骯髒文件更新之前

我正在開發Rails應用程序,並在某些機型上我使用paperclip gem保存附件。在相同的模型我使用public_activity gem跟蹤模型的變化&我已經準備恢復基於該功能,以便能夠撤銷對具體情況該模型的變化。 現在用回形針選項:preserve_files => true它是簡單的拿在delete情況下,舊的文件,但在update情況下,我不知道怎麼辦。

問:

public_activity gem已經在使用before_action回調,我可以處理不同的回形針文件更新所有的髒數據的字段。 所以,我怎樣才能在不改變我的模型或增加額外的回調(因爲我使用這個成就在多個模型和撤消功能是通用的)骯髒的更新文件。

注:

我使用File.exist?(paperclip_attachment.path)檢查文件是否仍然存在或沒有,它返回update回調public_activity(我覺得是一樣的before_update回調)的情況下,假的。

回答

0

我做了一個簡單的方法來獲取髒文件中帶剛public_activity更新回調編輯撤消功能:

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的容器文件夾,然後檢查最新創建的文件並將其保存在撤消步驟中使用的路徑。