Ruby on Rails,链式调用order,limit,offset方法对条件查询结果进行整理
在《 Ruby on Rails,使用where方法对持久化对象进行条件查询 》我们学习到可以通过where方法进行条件查询操作返回对象列表。 还有三个方法可以对返回的列表进行操作以便得到我们想要的结果集。 order方法对结果进行排序,比如将返回的对象按照名称升序排列、按照创建时间降序排列等。 limit方法对结果的数量进行限制,比如数据库中有成千上万的注册用户,我们不希望一下子把这些用户的信息都取出来,而是希望将这些用户分页显示,点击下一页才进行下一次读取。 limit方法读取第一页的N个用户,第二页需要返回的用户都需要将前面的N记录跳过,这里就用到了offset方法。 所以说,order;limit;offset方法配合使用就可以实现分页功能。 之前提到的find方法也有这三个功能比如,将所有Subject对象按照position的值升序排列后,跳过前面的40个,返回20条对象: Subject.find(:all, :order=> "position ASC", :limit => 20, :offset => 40) 前面提到了,find已经被where替代了,并已标注了不建议使用。所以记住以后要使用where配合三个独立方法哦! Subject.order("position").limit(20).offset(40)