我有一个非常经典的ajax分页案例,我在其中分页记录(使用Kaminari),当用户点击“加载更多”按钮时,下一页/记录集应通过ajax加载并插入。
问题是,我看到的大多数示例都非常简单,带有类似于以下内容的索引操作:
def index
users = User.page(params[:page]).per(10)
end
分页(或加载更多)按钮只是继续使用下一个page
参数调用该索引操作。
问题是,我的索引操作比它还要多的[[LOT,并且当我想要的只是用户记录的下一页时,我不想运行所有代码-这是缓慢且不必要的。
按照惯例,最干净的方法是什么?我的想法是要对index
使用另一种方法,如下所示:def load_more_users
users = User.page(params[:page]).per(10)
end
params[:page]
和if request.xhr?
是否存在? 最佳方法是什么?我有一个非常经典的ajax分页案例,在其中我对记录进行分页(使用Kaminari),并且当用户点击“加载更多”按钮时,下一个页面/记录集应通过...加载并插入。
respond_to do |format|
format.html {
# Existing index controller code
# Will render the existing template
}
format.js {
users = User.page(params[:page]).per(10)
render json: users # Or render a partial
}
end