u = User.find_by_id('150) u.password='some_password' u.save!
Und das funktioniert für eine ID/einen Benutzer einwandfrei. Das Problem ist, dass ich ungefähr 1500 Benutzer habe (ich habe eine Liste/ein Array ihrer IDs) und nicht weiß, wie ich sie alle auflisten kann.
Was ich erreichen möchte… Ich muss das Passwort für alle Benutzer in großen Mengen aktualisieren (nur zum Testen dasselbe Passwort). Ich habe es bereits für einen Benutzer gemacht und es funktioniert. Jetzt brauche ich eine schnelle Methode.
Hallo Jay … die Sache ist, dass ich nicht alle Benutzer aktualisieren muss … nur einige von ihnen mit einer zufälligen ID-Liste.
Ich habe es mit u = User.find_by_id([150,152,167,258,665]) versucht.
Aber das gibt immer für die ID 150 zurück und ändert das Passwort nur für diesen Benutzer. Ich habe auch versucht, mit User.find(id: 150,152....) zu arbeiten, aber das hat nicht geholfen …
Hinweis: Ich versuche, das Forum auf eine andere Diskussionsplattform zu migrieren, und es gibt eine Reihe von Benutzern, die viele Nachrichten geschrieben haben, aber nicht mehr im Forum aktiv sind (und aus irgendeinem Grund sind die Spalten password_hash und salt für diese Benutzer leer, das Skript zum Importieren von Benutzern erlaubt nicht den Import von Benutzern, die diese Werte nicht in der PGSQL-Datenbank definiert haben.), daher kann ich sie ihr Passwort nicht zurücksetzen lassen. Was ich tun kann, ist, ein kompliziertes Passwort festzulegen, und sie können sicherlich die Option “Passwort vergessen” verwenden und später ein neues zurücksetzen.
User.where ist vielleicht das, was Sie wollen, und dann die Postgres-Syntax, um Dinge zu finden, die mit einem Array übereinstimmen. Ich kann mich nie ganz erinnern.