关于如何在 Rails 应用程序中对资源实现排序和分页并仍然保持 RESTful 的任何提示?
如何以干净的方式映射页码和排序字段的参数?(我目前正在为我的应用程序中的每个资源使用map.resources :x )
我应该知道的任何其他性能问题?(例如缓存)
提前致谢。
编辑我将问题重新表述为更通用的问题,希望我能得到更多答案。我将投票关闭这个,因为它不再相关。感谢 insane-dreamer 和 vrish88 的回答。
关于如何在 Rails 应用程序中对资源实现排序和分页并仍然保持 RESTful 的任何提示?
如何以干净的方式映射页码和排序字段的参数?(我目前正在为我的应用程序中的每个资源使用map.resources :x )
我应该知道的任何其他性能问题?(例如缓存)
提前致谢。
编辑我将问题重新表述为更通用的问题,希望我能得到更多答案。我将投票关闭这个,因为它不再相关。感谢 insane-dreamer 和 vrish88 的回答。
Have you tried will_paginate? Is there some reason it doesn't meet your specific needs? (http://github.com/mislav/will_paginate/tree/master)
我建议你看看这篇文章:
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 和易于使用!