Kaminari 的使用很简单,比如 Event 是个 model @events = Event.page(params[:page]).per(5)
如果我是多表查询,抓出来的是没有物件的,也就是说没法设定分页条件的查询。 比如 str_sql = "select * from users_messages t1 left join messages t2 on t1.message_id = t2.id where t1.id=%d" % [userid]
一口气都出来了,这个效率要怎么做呢?
# Wrap an Array object to make it paginatable
# ==== Options
# * <tt>:limit</tt> - limit
# * <tt>:offset</tt> - offset
# * <tt>:total_count</tt> - total_count
def self.paginate_array(array, options = {})
PaginatableArray.new array, options
end
https://github.com/amatsuda/kaminari/blob/master/lib/kaminari/models/array_extension.rb
paginate_array 传入 limit, offset, total_count 参数生产一个 PaginateArray 对象,是拿来给 paginate helper 用的。
===这个是不是就是我 4 楼说的,只是针对我的结果分页,而不是减少查询的返回值
你的需求其实可以用 includes 解决 ===这个是不是跟 sql 语句带的 limit,offset 效果一样?在查询的时候就减少了返回值
LZ 的例子查询结果是关联表的内容,我很疑惑这个查询的目的啊。
User 和 Messages 的关系是 has_many 还是 has_and_belongs_to_many?一般状况用不着写 SQL 啊。
#8 楼 @Rei 是这种,http://ihower.tw/rails3/activerecord-relationships.html 多對多關聯 many-to-many。
我现在就是想需要一种,在语句里面就带有 limit offset,而且又有分页效果 paginate_by_sql 可以这样吗?