Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在RubyonRails中,如何在DB对象之前获取100项_Ruby On Rails_Ruby - Fatal编程技术网

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的,它将跳过所有元素。