일괄 삭제 해제

Best way to temporarily remove public access to a user's topics?에서 이어지는 토론입니다:

/u/username/deleted-posts 목록에서 일괄 삭제 해제 선택자를 활성화할 수 있을까요? 제 생각에는 이를 프로그래매틱하게 삭제 해제하려면 기술적으로 매우 도전적이고 잠재적으로 위험한 SQL/레일스 스크립트가 필요할 것 같습니다.

이 기능이 가장 유용하려면 삭제된 주제와 삭제된 답변을 구별하는 것이 좋습니다. 기존 /u/username/deleted-posts URL을 유지하면서 /u/username/deleted-posts/topics와 /u/username/deleted-posts/replies를 추가하는 방식이 좋을 것입니다.

2개의 좋아요

토픽은 이미 삭제된 상태이며, 사용자가 토픽 복원을 요청할 시점에 대한 추정도 없으므로, 일괄 복원 기능이 구현될 때까지 기다리는 것이 나을 것 같습니다. 이 기능이 유용하다고 생각하는 사람이 저만은 아닐 것입니다. 여기에는 이를 수행하는 방법에 대한 도움을 요청하는 게시글이 꽤 많이 있습니다.

또한, 사용자의 삭제된 토픽 ID 목록을 생성하는 방법을 파악할 수 있다면, 이는 프로그래밍 방식으로 복원하는 잠재적으로 더 쉽고 안전한 방법처럼 보입니다:

이것은 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개의 좋아요

제이, 전혀 문제가 아닙니다. 정말 감사해요. 물론 Discourse에서 GUI 방식으로 구현할 수 있다면 더 좋겠지만, 그게 안 된다면 이렇게 하나하나 알려주셔서 정말 감사해요.

1개의 좋아요

확실히 특수한 경우이긴 하지만, 특정 기능이 여러 번 요청될 때(특히 고객들로부터) 이를 추적하여 언제 해당 기능을 진행할지 더 나은 판단을 내리려고 합니다. :slight_smile:

1개의 좋아요