2017-04-19 44 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的容器文件夹,然后检查最新创建的文件并将其保存在撤消步骤中使用的路径。