Ich habe eine bestehende Gruppe geändert und den Wert Vertrauensstufe, die Mitgliedern automatisch gewährt wird, wenn sie hinzugefügt werden auf 2 gesetzt, sodass alle Mitglieder dieser Gruppe bei Hinzufügung zur Gruppe aufgefordert werden, Vertrauensstufe 2 zu erreichen:
Diese Lösung ist fortgeschritten. Rails-Befehle können nur ausgeführt werden, wenn Sie SSH-Zugriff auf Ihren Server haben und sollten vermieden werden, wenn Sie sich nicht sicher sind, was Sie tun. Sichern Sie in jedem Fall immer zuerst Ihre Daten.
Hallo Richie
Sie können ein Rails-Skript ähnlich diesem verwenden:
Das sollte von der Rails-Konsole aus funktionieren:
target_group = Group.find_by_name("test")
users = User.joins(:group_users).where(group_users:{group_id: target_group.id})
users.each do |u|
u.trust_level = 2
u.save
end
Ich bin überhaupt nicht mit der Rails-Konsole vertraut, aber ich habe ausgeführt, was du hier gepostet hast, und sie hängt jetzt bei END und blinkt mit einem Cursor vor mir:
Nein, das ist nur eine Ausgabe, die keine Auswirkungen auf die Skriptausführung hat. Ich glaube, Sie können \u003ckbd\u003eq\u003c/kbd\u003e drücken, um sie zu verlassen.
Sie können auch dies verwenden:
Es könnte mit dem Teil Group.find_by_name("test") zusammenhängen. Ich weiß nicht, ob es den tatsächlichen Gruppennamen oder den Slug akzeptiert.
Außerdem hätte ich erwähnen sollen, dass die Verwendung von Rails-Befehlen ziemlich fortgeschritten ist und vor solchen Dingen ein Backup erstellt werden sollte. Das tut mir leid.
Wenn ich mir einen Benutzer ansehe, der vor der Ausführung dieses Rails-Skripts TL1 war, sehe ich, dass er jetzt TL2 ist (was großartig ist, vielen Dank!)
Die Gruppen werden während eines Sidekiq-Jobs aktualisiert.
Die Aufgabe ist EnsureDbConsistency und kann über Sidekiq ausgelöst werden, wenn Sie wissen, wie es geht. Sie können auch ein paar Stunden warten; die Gruppen werden automatisch aktualisiert.
Ich war nur ein wenig zu schnell damit, einen Rails-Befehl vorzuschlagen, ohne eine ordnungsgemäße Warnung auszusprechen, da dies schiefgehen kann, wenn wir nicht wirklich wissen, was wir tun. Ich werde meiner Veröffentlichung eine deutlichere Warnung hinzufügen