ruby-on-rails – 在Rails中实现gmail风格“撤消”的最佳方式是
发布时间:2020-12-16 20:29:06 所属栏目:百科 来源:网络整理
导读:我认为重要的是在销毁记录时使用“撤消”方法,而不是显示一个令人讨厌的弹出窗口,说“你确定吗? 我实现这个的方法是在模型中有一个“deleted_at”时间戳记列,当destroy方法被调用时,它将获得时间戳 def destroy @foo = Foo.find(params[:id]) @foo.update_a
我认为重要的是在销毁记录时使用“撤消”方法,而不是显示一个令人讨厌的弹出窗口,说“你确定吗?
我实现这个的方法是在模型中有一个“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字段.查找超载以跳过已删除的记录. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |