Toutes les actions destructives exécutées dans la console sont un peu effrayantes. Assurez-vous de faire une sauvegarde avant de les lancer.
Un enregistrement CategoryUser décrit le niveau de notification d’un utilisateur pour une catégorie. Un notification_level de 0 signifie que la catégorie est muette pour l’utilisateur. Vous trouverez plus d’informations ici : (Obsolete) Set category tracking level defaults historically.
Supprimer tous les enregistrements CategoryUser pour un category_id donné avec un notification_level de 0 retirera cette catégorie de la liste des catégories muettes pour tous les utilisateurs de votre site.
Lorsque j’exécute une commande comme celle-ci, j’ajoute généralement une étape supplémentaire que je n’ai pas incluse ci-dessus. Au lieu d’exécuter
CategoryUser.where(category_id: c.id, notification_level: 0).destroy_all
en une seule étape, j’assigne les enregistrements à une variable afin de pouvoir vérifier que je traite les bonnes données. Quelque chose comme ceci :
# Récupérer la catégorie et l'assigner à une variable
c = Category.find_by(name: "<nom de votre catégorie>")
# Assigner les category_users à une variable et examiner les données. Vérifiez que les enregistrements ont le bon category_id, etc.
muted_category_users = CategoryUser.where(category_id: c.id, notification_level: 0)
# Une fois certain que les données sont correctes, exécutez
muted_category_users.destroy_all