8

Jak mogę uruchomić destroy_all w tablicy?Uruchamianie destroy_all na tablicy?

Mam zapytanie następująco:

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

Próbowałem uruchomiony spam_users.destroy_all ale mam undefined method 'destroy_all' for #<Array:0x10b09ce30>.

Używam Rails 2.3.8 w tej konkretnej aplikacji wraz z PostgreSQL.

Odpowiedz

22

Nie wykonuje się destroy_all w tablicy, destroy_all to metoda klasy w swoich modelach. Poniższy należy zabić wszystko byłoby w spam_users tablicy:

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

Można również iteracyjne nad spam_users i zniszczyć je jeden po drugim, jeśli już je dla innych celów:

spam_users.each(&:destroy) 

Mógłbyś aby dostosować swoją regex trochę jak:

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

Musisz się E trochę do uniknięcia „niestandardowe użycie escape w ciągu literałowym "ostrzeżenie o \..