Ich glaube, die folgenden Schritte haben das Problem gelöst!
In den Website-Einstellungen habe ich die Kategorie (31) standardmäßig und rückwirkend als zu beobachtend markiert.
Überprüfen Sie:
CategoryUser.where(category_id: 31).pluck(:user_id, :notification_level)
Die meisten Benutzer haben für meine Kategorie 31 einen notification_level von 3. 
Nun stehen zwei Dinge im Weg, damit diese Änderung eine 100%ige Wirkung erzielt:
- Die globalen E-Mail-Einstellungen des Benutzers.
- Die Benachrichtigungseinstellungen des Benutzers für jedes Thema in der Kategorie (31).
Die folgenden Zeilen ändern persönliche Einstellungen Ihrer Benutzer. Geraten Sie nicht in Streit.
Zuerst muss man, um die E-Mails der Benutzer zu “reaktivieren”, den email_level der Benutzer auf 1 (d. h. “wenn abwesend”) oder 2 (“immer”) setzen:
UserOption.update_all(email_level: 1)
Überprüfen Sie:
UserOption.group(:email_level).count
Ich erhalte etwas wie => {1=>X}, wobei X die Anzahl der Benutzer ist.
Zweitens hat der notification_level des Themas Vorrang vor dem notification_level der Kategorie (der in den Website-Einstellungen geändert wurde). Der einfachste Weg ist, die Thema-Einstellungen aus dem Weg zu räumen. Dazu löscht man einfach die Einträge Thema für Thema:
TopicUser.where(topic_id: <topic_id_nr>).destroy_all
Überprüfen Sie:
TopicUser.where(topic_id: <topic_id_nr>).exists?
Ich erhalte etwas wie => [], was bedeutet, dass kein Benutzer Thema-Einstellungen hat und der notification_level der Kategorie für alle Benutzer der Standard ist.
N.B.: Einige Benutzer hatten immer noch keine Benachrichtigungseinstellungen für die Kategorie (31) gesetzt (d. h. keinen Eintrag in der category_user-Tabelle). Um sicherzustellen, dass ihr notification_level gesetzt ist, muss man einen Eintrag mit dem Wert für notification_level erstellen:
User.find_each do |user|
unless CategoryUser.exists?(user_id: user.id, category_id: 31)
CategoryUser.create!(user_id: user.id, category_id: 31, notification_level: 3)
end
end
Überprüfen Sie:
CategoryUser.where(category_id: 31).pluck(:id, :notification_level)