8

¿Cómo puedo ejecutar destroy_all en una matriz?Ejecutando destroy_all en una matriz?

Tengo la consulta siguiente:

spam_users = User.find_by_sql("SELECT * FROM users WHERE email ~* '21cn.com'") 

He intentado correr spam_users.destroy_all pero consigo undefined method 'destroy_all' for #<Array:0x10b09ce30>.

Estoy ejecutando Rails 2.3.8 en esta aplicación en particular junto con PostgreSQL.

Respuesta

22

No ejecuta destroy_all en una matriz, destroy_all es un método de clase en sus modelos. Lo que sigue debe matar a todo lo que sería en su spam_users matriz:

User.destroy_all("email ~* '21cn.com'") 

También podría iterar sobre spam_users y destruirlos uno por uno si ya tenía para otros fines:

spam_users.each(&:destroy) 

Usted podría desea ajustar su expresión regular un poco así:

User.destroy_all("email ~* E'21cn\.com$'") 

que necesitará el bit E para evitar un "no estándar uso de escape en una cadena literal "advertencia sobre el \..

Cuestiones relacionadas