u = User.find_by_id('150) u.password='some_password' u.save!
E questo funziona benissimo per un ID/utente, il fatto è che ho circa 1500 utenti (ho un elenco/array dei loro ID) e non so come elencarli tutti.
Cosa voglio realizzare… devo aggiornare in blocco la password (solo per test, stessa password) per tutti gli utenti. L’ho già fatto per uno e funziona, ora ho bisogno di un metodo rapido.
Ehi Jay… il fatto è che non ho bisogno di aggiornare tutti gli utenti… solo alcuni con un set casuale di ID.
Ho provato con u = User.find_by_id([150,152,167,258,665])
Ma questo restituisce sempre per l’ID 150 e cambia la password solo per quell’utente. Ho anche provato con User.find(id: 150,152....) non ha aiutato…
Nota: sto cercando di migrare il forum su un’altra piattaforma di discussione, e ci sono un certo numero di utenti che hanno scritto un sacco di messaggi ma non vengono più al forum (e per qualche motivo le colonne password_hash e salt sono vuote per quegli utenti, lo script di importazione utenti non consente l’importazione di utenti che non hanno questi valori definiti nel database PGSQL.), quindi non posso farli reimpostare le password. Quello che posso fare è impostare una password complicata, e sicuramente potranno andare all’opzione Password dimenticata e reimpostarne una nuova in seguito.
User.where potrebbe essere quello che stai cercando e poi la sintassi postgres per trovare elementi che corrispondono a un array. Non riesco mai a ricordarla bene.