Rails,当使用destroy_all时,有没有办法返回记录数,如果有任何删除?

时间:2011-06-26 22:13:34

标签: ruby-on-rails ruby-on-rails-3

现在我有:

PollVote.destroy_all(:user_id => record.user_id, :poll_id => record.poll_id)

有没有办法可以取回这个号码,删除了? 0或更多?

deleted_count = PollVote.destroy_all(:user_id => record.user_id, :poll_id => record.poll_id)

deleted_count是0还是更高?

由于

2 个答案:

答案 0 :(得分:9)

根据文档,destroy_all返回被销毁对象的集合。知道这一点,你需要做的就是获得该集合的length

destroyed = PollVote.destroy_all(:user_id => record.user_id, :poll_id => record.poll_id)

destroyed_count = destroyed.length # => The number of records destroyed

答案 1 :(得分:2)

如果您使用delete_all,它将跳过您要删除的记录的所有销毁回调(当您不希望这些记录运行时有帮助)并且它将返回具有的记录数已被删除。