Ruby on rails 在RubyonRails中,如何在DB对象之前获取100项
我有一个Ruby on rails 在RubyonRails中,如何在DB对象之前获取100项,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个消息模型。我想在一个ID=654之前获取100个项目,因此如果数据库中没有丢失的ID,那么我想获取的ID是553..653 我能想到的最好的方法是Message.where(:id=>myID-100..myID)但问题是如果数据库中缺少id,比如58458586588589592593。。。我之前想要100件,而不是ID范围 任何帮助都将不胜感激。试试: Message.where('id < ?', myID).order('id DESC').limit(100) Mess
消息
模型。我想在一个ID=654
之前获取100个项目,因此如果数据库中没有丢失的ID,那么我想获取的ID是553..653
我能想到的最好的方法是Message.where(:id=>myID-100..myID)
但问题是如果数据库中缺少id,比如58458586588589592593。。。我之前想要100件,而不是ID范围
任何帮助都将不胜感激。试试:
Message.where('id < ?', myID).order('id DESC').limit(100)
Message.where('id<?',myID.)。order('id DESC')。limit(100)
使用偏移查询
Message.limit(100).offset(654)
请参考嗯,我刚才试过这个,没用。也许是因为偏移量指的是“之后”?但我想找回的是654之前的那些。从你给我的链接来看,它看起来像。偏移量(NUMBER),NUMBER是从一开始的第n个位置,但问题是我认为。偏移量(654)指的是第654个位置,而不是ID=654。在这种情况下,如果缺少一些ID(比如583、585、56),就会有问题,但谢谢你的回答。我不知道这个方法,但我学到了一些新的东西:)偏移量将跳过前654个元素,不管它们的id如何。因此,如果有101个元素,首先是id为654的,它将跳过所有元素。