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

时间:2011-10-27 23:35:22

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

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

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

所以我的数据库会有

id : 210 (Even thought it's currently the first value)
id : 211 (Even thought it's currently the second value)

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

子问题 -
Destroy_all / delete_all -
只删除项目,我是否可以从数据库中删除所有条目,并使数据库ID从一个开始而不删除表。当我遇到问题时。

3 个答案:

答案 0 :(得分:21)

假设你想要第四个用户:

 @users = User.limit(4)
 @fourth_user = @users[3]

关于你的第二个问题,destroy_all应该可以解决问题,因为它会触发所有回调。请务必在您的人际关系中添加:dependent => :destroy

答案 1 :(得分:10)

你需要的是

#n=2,3,4 etc    
.limit(1).offset(n) 

答案 2 :(得分:8)

Model.second已添加到Rails 4.1.8。

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

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