自定义表情符号能否支持批量删除?

您可以查看 Administrative Bulk Operations

类似这样的代码应该可以工作:

remove=Post.where("raw like '%:some_emoji%'")
remove.each do |post|
  new_raw=post.raw.gsub(":some_emoji","")
  if new_raw != post.raw
            PostRevisor.new(post).revise!(
              post.user,
              { raw: new_raw },
              bypass_bump: true,
              edit_reason: "Remove emoji we no longer like",
              bypass_rate_limiter: true,
            )
  end
end

您应该对其进行测试,但它确实会创建编辑,因此您可以撤销它。

如果您不想要编辑,可以将 PostRevisor 替换为 post.raw=new_raw;post.save

6 个赞