Rails RESTful应用程序中的分页和排序

时间:2009-03-24 08:50:03

标签: ruby-on-rails rest sorting pagination

有关如何在Rails应用程序中的资源上实现排序和分页并仍保持RESTful的任何提示?

如何以干净的方式映射页码和排序字段的参数? (我目前正在为我的应用中的每个资源使用 map.resources:x

我应该知道的任何其他性能问题? (例如缓存)

提前致谢。

编辑我将问题重新制定为更多generic one,希望我能得到更多答案。我打算投票结束这个,因为它不再相关。感谢insane-dreamer和vrish88的答案。

2 个答案:

答案 0 :(得分:5)

你试过will_paginate吗?有什么理由不符合您的具体需求吗? (http://github.com/mislav/will_paginate/tree/master

答案 1 :(得分:2)

我建议你看一下这篇文章:

http://dev.nozav.org/rails_ajax_table.html

http://dev.nozav.org/ajaxtable/ (这是演示应用程序)

我在我的一个应用程序中使用了相同的基本代码。我没有使用他们描述的AJAX实现,但我使用了他们提到的排序助手,然后我构建了我的视图以启用排序。在排序助手中,您只想取出与ajax相关的东西。我最终看起来像这样:

def sort_link_helper(text, param)
  key = param
  key += "_reverse" if params[:sort] == param
  parameters = params.merge({:sort => key, :page => params[:page], :action => controller.action_name })
  link_to(text, url_for(parameters))
end

def sort_td_class_helper(param)
  result = 'class="sortup"' if params[:sort] == param
  result = 'class="sortdown"' if params[:sort] == param + "_reverse"
  return result
end

关于此实现的最佳部分是RESTful,DRY且易于使用!