Ruby on rails 设计用户ID自动递增跳过多个数字

Ruby on rails 设计用户ID自动递增跳过多个数字,ruby-on-rails,ruby-on-rails-3,heroku,devise,Ruby On Rails,Ruby On Rails 3,Heroku,Devise,我有一段代码以编程方式创建了一个新的Desive用户: user = User.new user.username = params[:username] user.email = params[:email] user.password = params[:password] if user.save render :json => user else render :json => user.err

我有一段代码以编程方式创建了一个新的Desive用户:

    user = User.new
    user.username = params[:username]
    user.email = params[:email]
    user.password = params[:password]

    if user.save
        render :json => user
    else
        render :json => user.errors
    end
我最近注意到,
用户id
跳过了我记录中的大约30个数字

查看我的记录,我有:


你知道是什么导致了增量的巨大差距吗?用户无法删除其帐户。

如果您部署在Heroku上,则您使用的是Postgres。在Postgres中,主键ID在线性自动递增序列中只分配一次。但在回滚事务的情况下,分配的id仍将标记为已使用,并且不会再次分配

无法确定,但我的猜测是,由于某些事务错误,
30
61
之间所有用户的创建都被回滚。您可能希望对照存储库提交进行交叉检查,以查看您是否对
用户
模型进行了任何修改,这些修改可能与没有用户提交到数据库的时间段相对应


基本上,事情在某一点上起了作用,然后就坏了,现在又开始起作用了。检查
User.find(29).created_at
User.find(62).created_at
之间的时间段,并查看是否有任何提交可能影响了您的模型。

运行
User.count
时您得到了什么?另外,您使用的数据库是什么?您是否在
用户
表上启用了事务?我们将在MUSS中看到您!嗯,我猜可能是这样的。这不是什么大不了的事,因为这个应用程序仍然运行良好,只是想知道原因!