继续讨论 暂时移除用户主题的公开访问的最佳方法?:
是否可以在 /u/username/deleted-posts 列表中启用批量取消删除选择器?据我所知,这需要一个技术上 非常具有挑战性且可能危险 的 SQL/rails 脚本来以编程方式取消删除它们。
为了使此功能最有用,最好区分已删除的主题和已删除的回复。也许可以保留现有的 /u/username/deleted-posts URL,然后添加 /u/username/deleted-posts/topics 和 /u/username/deleted-posts/replies。
2 个赞
这些主题已经被删除了,我也不知道用户何时会请求恢复这些主题,所以我想我可以等到批量取消删除功能实现。我认为我不是唯一一个觉得它有用的人,这里有相当多的帖子请求帮助这样做。
这也看起来是一种更容易、更安全的方法来以编程方式取消删除,前提是我能弄清楚如何生成用户已删除主题 ID 的列表:
pfaffman
(Jay Pfaffman)
3
这将查找由 user_id 1 创建的已删除主题。
dts=Topic.with_deleted.where(user_id: 1).where("deleted_at is not null");
dts.pluck(:deleted_at, :id)
dps=Post.with_deleted.where(user_id: 1).where("deleted_at is not null");
dbs.pluck(:deleted_at, :id)
看起来你可以用类似下面的方法来取消删除帖子
dp=dps.first
dp.deleted_at=nil
dp.deleted_by=nil
dp.save
你对主题也会做类似的事情。
如果到了取消删除这些内容的时候,上面这些对于稍微了解一点 rails 的人来说应该足够了,可以让他们取消删除所有内容。
供参考,如果你将它们移动到一个隐藏的类别,也许可以更容易地批量恢复到上一个修订版本。但当这两种情况都对你来说完全不可能时,我认为这是一个没有区别的区别。
最后,我为再次将功能请求当作 Support 来处理而道歉。我想我这样做是因为我没有能力实现功能,但我可以解决问题。
4 个赞
没问题,Jay,非常感谢。当然,我更希望 Discourse 能实现 GUI 方法,但如果不行,我非常感谢你一步步地指导我。
1 个赞
Canapin
(Coin-coin le Canapin)
5
这当然是一个极端情况,但我们会尽量记录功能被请求的次数(尤其是来自客户的请求),以便更好地了解何时应该推进 
1 个赞