为什么这样做:
@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
答案 0 :(得分:15)
where方法返回符合选择条件的可枚举的activerecord对象集合。在该集合上调用destroy方法与在单个activerecord对象上调用destroy方法不同。
答案 1 :(得分:10)
这应该有效: PollVote.destroy_all(:user_id => self.user_id,:poll_id => self.poll_id)
答案 2 :(得分:1)
'where'是命名范围。您正在命名范围集合上调用destroy方法。尝试destroy_all