يمكنك الاطلاع على عمليات الدُفعات الإدارية.
شيء كهذا سيعمل
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: "إزالة الرموز التعبيرية التي لم نعد نحبها",
bypass_rate_limiter: true,
)
end
end
يجب عليك اختباره، ولكنه ينشئ تعديلات بحيث يمكنك التراجع عنها.
إذا كنت لا تريد تعديلات، يمكنك بدلاً من PostRevisor استخدام post.raw=new_raw;post.save.