u = User.find_by_id('150) u.password='some_password' u.save!
E isso está funcionando muito bem para um ID/usuário, o problema é que tenho cerca de 1500 usuários (tenho uma lista/array dos seus IDs) e não sei como listá-los todos.
O que quero realizar… preciso atualizar a senha em massa (mesma senha apenas para teste) para todos os usuários. Já fiz para um e funciona, agora preciso de um método rápido.
E aí, Jay… o lance é que eu não preciso atualizar todos os usuários… apenas alguns com um conjunto aleatório de IDs.
Eu tentei com u = User.find_by_id([150,152,167,258,665])
Mas isso sempre retorna para o ID 150 e muda a senha apenas para esse Usuário. Também tentei com User.find(id: 150,152....) não ajudou…
Observação: Estou tentando migrar o fórum para outra plataforma de discussão, e há um número de usuários que escreveram um monte de mensagens, mas não estão mais vindo ao fórum (e por algum motivo as colunas password_hash e salt estão vazias para esses usuários, o script de importação de usuários não permite importar usuários que não tenham esses valores definidos no banco de dados PGSQL), então não posso deixá-los redefinir suas senhas. O que posso fazer é definir uma senha complicada, e eles certamente poderão ir para a opção Esqueceu a senha e redefinir uma nova depois.
User.where pode ser o que você procura e, em seguida, a sintaxe do postgres para encontrar itens que correspondem a um array. Eu nunca consigo lembrar direito.