ruby-on-rails – 在Rails中实现gmail风格“撤消”的最佳方式是什么?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 在Rails中实现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.

对我来说很容易实现,但是我好奇的是,如果有更好的方法来实现这个功能?也许有一个插件或宝石提供这一点,我不知道?

解决方法

确实有一些插件可以在 Agile Web Development找到.

以下是与您的说明相符的插件链接摘要

> Acts as Paranoid:使你的活动记录“偏执”.删除它们不会删除该行,但设置一个deleted_at字段.查找超载以跳过已删除的记录.
> Acts as soft deletable:提供软删除ActiveRecord模型的功能.

猜你在找的Ruby相关文章