Hallo zusammen,
ich habe ein Rangsystem mit benutzerdefinierten Titeln eingerichtet, aber wie ihr wisst, gibt es in Discourse keine integrierte Möglichkeit, allen neuen Benutzern einen Standardtitel zuzuweisen. Daher habe ich eine Problemumgehung erstellt, bei der:
- Neue Mitglieder in Gruppe 1 sind
- Aktive Mitglieder in Gruppe 2 sind
- Und so weiter…
Die von mir verwendete Methode ist wie folgt:
cd /var/discourse
./launcher enter app
rails c
User.where(trust_level: 0).update_all(title: "عضو جديد")
User.where(trust_level: 1).update_all(title: "عضو جديد")
User.where(trust_level: 2).update_all(title: "عضو مشارك")
User.where(trust_level: 3).update_all(title: "عضو مبدع")
Das Problem
Ich muss diese Befehle jedes Mal manuell ausführen, wenn ein neuer Benutzer beitritt. Wenn ich das Skript heute ausführe und morgen ein neues Mitglied etwas postet, erhält es nicht automatisch den Titel, sodass ich mich beim Server anmelden und die Befehle erneut ausführen muss.
Ich habe versucht, es mit einem Ruby-Skript zu automatisieren und es über crontab aufzurufen, aber ich erhalte eine Fehlermeldung.
Ich habe ChatGPT gefragt und es sagte mir:
„Das User-Modell wird nicht geladen, wenn Sie das Skript direkt mit Ruby außerhalb der Discourse-Umgebung ausführen.“
Das Problem ist, dass ich nicht die richtige config/environment-Einrichtung innerhalb der Discourse-Dateien habe.
Ich habe es hinzugefügt, aber es hat nicht funktioniert.
Meine Frage
Gibt es eine Möglichkeit, dies ohne crontab zu automatisieren? Oder wie kann ich ein Skript, das Benutzertitel aktualisiert, ordnungsgemäß ausführen, ohne jedes Mal die Rails-Konsole manuell aufzurufen?
Vielen Dank im Voraus!









