2011-06-26 7 views
5

なぜ、この仕事を行います。Rails、破壊対削除?

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

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

をしかし、これではないでしょうか?

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

答えて

10

この動作するはずです: PollVote.destroy_all(:USER_ID => self.user_id、:poll_id => self.poll_id)

1

'は'名前付きスコープです。名前付きスコープコレクションでdestroyメソッドを呼び出しています。 try destroy_all

15

Whereメソッドは、選択基準を満たす列挙可能なactiverecordオブジェクトのコレクションを返します。そのコレクションでdestroyメソッドを呼び出すことは、単一のactiverecordオブジェクトでdestroyメソッドを呼び出すこととは異なります。

+0

おかげいますが、解決策を言及していませんか? – AnApprentice

+4

@AnApprentice、あなたは解決策を尋ねなかった。なぜ何かがうまくいかない理由を尋ねた。フレッドはあなたに良い説明をしたので、彼の答えを受け入れることができた。 –

関連する問題