Pregunta

Tengo una tabla de 2 campos. Palabra y marca de tiempo. Entonces tengo esta matriz que contiene algunas palabras. ¿Cómo se eliminan todos los registros de la tabla que coinciden con las palabras de la matriz? Supongamos que el modelo se llama "Palabra".

Cualquier ideas sobre cómo lograr esto? tal vez recorrer la matriz y ejecutar algunas consultas destruir. Alguien me puede dirigir aquí? gracias

¿Fue útil?

Solución

Si ha definido devoluciones de llamada en el modelo sql desnuda no llamará a ellos. La forma recomendada en este caso es:

deletable_words = [ 'php', 'c++' ]
objs = Word.find(:all, :conditions => [ "words.word IN (?)",  deletable_words])
objs.each { |o| o.destroy }

Otros consejos

Haga lo siguiente:

Word.delete_all(:words => words_array)

Esto eliminará las filas que coincidan con las palabras de la matriz dada, en una sentencia SQL.

por ejemplo:.

words = ["pop", "pop alternative", "r&b"]
Word.delete_all(:words => words)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top