我认为重要的是有一个" 撤销 "的方法ALA 的Gmail销毁记录的时候,而不是显示恼人的弹出,上面写着:" 你确定吗? ".
我实现这个的方法是在模型中有一个"deleted_at"时间戳列,当调用destroy方法时,它会被加上时间戳
def destroy @foo = Foo.find(params[:id]) @foo.update_attribute(:deleted_at, Time.now) ... end
要恢复/撤消,我只需将同一列设置为nil
def revert @foo = Foo.find(params[:id]) @foo.update_attribute(:deleted_at, nil) ... end
当我调用find方法时,我只需添加一个条件来过滤掉"已删除"的foos.也许设置一个cron或后台任务来在一段时间后真正破坏"已删除"的foos.
适合我,易于实现,但我很好奇是否有更好的方法来实现此功能?也许有一个插件或宝石提供我不知道的?