콘솔에서 실행되는 파괴적(destructive) 작업은 항상 조금 무섭습니다. 실행하기 전에 반드시 백업을 받으세요.
CategoryUser 레코드는 사용자의 카테고리별 알림 수준을 설명합니다. notification_level이 0이면 해당 카테고리가 사용자에게 음소거된 상태임을 의미합니다. 더 자세한 정보는 여기에서 확인할 수 있습니다: (Obsolete) Set category tracking level defaults historically.
특정 category_id에 대해 notification_level이 0인 모든 CategoryUser 레코드를 삭제하면, 사이트의 모든 사용자에게 해당 카테고리가 음소거 목록에서 제거됩니다.
이런 명령을 실행할 때 저는 위에서 게시하지 않은 추가 단계를 보통 수행합니다. 한 단계에서 실행하는 대신,
CategoryUser.where(category_id: c.id, notification_level: 0).destroy_all
레코드를 변수에 할당하여 올바른 데이터를 다루고 있는지 두 번 확인합니다. 다음과 같은 방식으로요:
# 카테고리를 가져와 변수에 할당
c = Category.find_by(name: "<your category name>")
# category_users를 변수에 할당하고 데이터를 검토합니다. 레코드가
# 올바른 category_id 등을 가지고 있는지 확인하세요.
muted_category_users = CategoryUser.where(category_id: c.id, notification_level: 0)
# 데이터가 정확하다고 확신되면 실행하세요.
muted_category_users.destroy_all