2011-06-26 13 views
5

Dlaczego to działa:Szyny, zniszcz lub usuń?

@poll_votes = PollVote.where(:user_id => self.user_id, :poll_id => self.poll_id).all 

@poll_votes.each do |p| 
    p.destroy 
end 

Ale to nie robi?

@poll_votes = PollVote.where(:user_id => self.user_id, :poll_id => self.poll_id).destroy 

Odpowiedz

10

To powinno działać: PollVote.destroy_all (: user_id => self.user_id,: poll_id => self.poll_id)

1

"gdzie" to nazwany zakres. Wywołujesz metodę destroy na zbiorze nazwanego zakresu. Spróbuj destroy_all

15

Metoda where zwraca zwrócony zbiór obiektów activerecord spełniających kryteria wyboru. Wywołanie metody destroy w tej kolekcji jest inne niż wywołanie metody destroy na pojedynczym obiekcie activerecord.

+0

dzięki ale nie wspomnieć o rozwiązanie? – AnApprentice

+4

@AnApprentice, nie poprosiłeś o rozwiązanie, zapytałeś, dlaczego coś nie działa, a Fred dał ci dobre wyjaśnienie, więc jego odpowiedź mogła zostać zaakceptowana. –

Powiązane problemy