Penso che i passaggi seguenti abbiano risolto il problema!
Nelle impostazioni del sito ho impostato la categoria (31) da osservare per impostazione predefinita, retroattivamente.
Verifica:
CategoryUser.where(category_id: 31).pluck(:user_id, :notification_level)
La maggior parte degli utenti ha un notification_level di 3 per la mia categoria 31. 
Ora ci sono due cose che ostacolano l’effetto al 100% di questa modifica:
- Le preferenze email globali dell’utente.
- Le preferenze di notifica dell’utente per ogni argomento nella categoria (31).
Le righe seguenti modificheranno le impostazioni personali dei tuoi utenti. Non metterti nei guai.
Innanzitutto, per “riattivare” le email degli utenti, è necessario impostare il email_level degli utenti su 1 (cioè “quando assente”) o 2 (“sempre”):
UserOption.update_all(email_level: 1)
Verifica:
UserOption.group(:email_level).count
Ottengo qualcosa come => {1=>X} con X che è il numero di utenti.
In secondo luogo, il notification_level dell’argomento ha la priorità sul notification_level della categoria (che è stato modificato nelle impostazioni del sito). Il modo più semplice è eliminare le preferenze dell’argomento. Per farlo, basta eliminare le voci argomento per argomento:
TopicUser.where(topic_id: <nr_id_argomento>).destroy_all
Verifica:
TopicUser.where(topic_id: <nr_id_argomento>).exists?
Ottengo qualcosa come => [ ] che significa che nessun utente ha preferenze per l’argomento e il notification_level della categoria sarà quello predefinito per tutti gli utenti.
N.B.: In qualche modo, alcuni utenti non avevano ancora impostato preferenze di notifica per la categoria (31) (cioè nessuna voce nella tabella category_user). Per assicurarsi che il loro notification_level sia impostato, è necessario creare una voce con il valore per notification_level:
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
Verifica:
CategoryUser.where(category_id: 31).pluck(:id, :notification_level)