Active Record - 获取数据库中的第二个,第三个..项目(无ID)

Red*_*ory 16 database activerecord ruby-on-rails ruby-on-rails-3

如何检索数据库中的第二个,第三个..条目.我不想使用rails生成的自动递增id.

当我从数据库中删除条目时,ID会继续增加.

所以我的数据库会有

id : 210 (Even thought it's currently the first value)
id : 211 (Even thought it's currently the second value)
Run Code Online (Sandbox Code Playgroud)

我知道"Phone.first"将返回第一个如何获得第二个.

Sub Question-
Destroy_all/delete_all -
仅删除项目,是否可以从数据库中删除所有条目,并且在不删除表格的情况下从一个数据库开始.当我遇到问题.

apn*_*ing 21

假设你想要第四个用户:

 @users = User.limit(4)
 @fourth_user = @users[3]
Run Code Online (Sandbox Code Playgroud)

关于你的第二个问题,destroy_all应该这样做,因为它会触发所有回调.一定要加入:dependent => :destroy你的人际关系.

  • 或者更简洁:`@fourth_user = User.limit(1).offset(3).first` (10认同)
  • 这有效,特别是在MySQL上,但请记住,如果没有定义"order"子句,返回的数据可能不会总是在同一个顺序.例如,在Postgres中,返回的记录与插入的记录顺序不同. (2认同)

小智 10

你需要的是什么

#n=2,3,4 etc    
.limit(1).offset(n) 
Run Code Online (Sandbox Code Playgroud)


Jos*_*ter 9

Model.second 被添加到Rails 4.1.8.

所以你可以在等于或大于它的Rails版本上使用它.

.third,.fourth.fifth被添加到ActiveRecord::FinderMethods.