获取所有用户的数量,包括已删除的用户

时间:2014-10-14 09:24:27

标签: ruby-on-rails

在我的ruby on rails应用程序中,我希望获得所有count的{​​{1}},我正在执行以下操作:

users

它获取了所有未删除但仍希望获得所有用户的结果,包括@user = User.count

3 个答案:

答案 0 :(得分:1)

@user = User.count

此处用户是数据库表,如果用户在计数之前被删除,那么.count将不计算这些用户,因为它们在您当前的应用数据库中不再可用。

答案 1 :(得分:0)

如果您只想将计数作为粗略的限制,您可以检查用户表的最后一个ID。

如果删除的用户始终是最后插入的用户,这将不准确,但这可以让您了解它。

User.last.id

会做到这一点。

为什么这是一种骚动?

假设数据库中最后插入的用户的id = 499 如果您插入新用户,则需要id = 500.(此时User.last.id返回500)

如果你删除id = 500的那个,你的最后一个id将是499,但是如果你插入一个新的id,它将采用id = 501(这对于mysql来说是真的,不知道其他数据库系统)

但这并不能确保您在数据库中同时存在501个用户:它只表示在users表中有501个插入,只要它从未被截断(因为截断将id计数器重置为0) )

答案 2 :(得分:0)

要获得预期的结果,您可以使用此gem paranoia

使用此gem时,如果删除用户,它将在逻辑上删除,而不是从数据库中删除,这样您就可以正确地获取用户数量。请阅读自述文件了解更多详情。

相关问题