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

AnA*_*ice 4 ruby-on-rails ruby-on-rails-3

现在我有:

PollVote.destroy_all(:user_id => record.user_id, :poll_id => record.poll_id)
Run Code Online (Sandbox Code Playgroud)

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

deleted_count = PollVote.destroy_all(:user_id => record.user_id, :poll_id => record.poll_id)
Run Code Online (Sandbox Code Playgroud)

deleted_count是0还是更高?

谢谢

Jor*_*ing 11

根据文档,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
Run Code Online (Sandbox Code Playgroud)


Rya*_*igg 5

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