代码之家  ›  专栏  ›  技术社区  ›  andi

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

  •  1
  • andi  · 技术社区  · 17 年前

    关于如何在Rails应用程序中对资源进行排序和分页并保持其RESTful状态,有什么建议吗?

    如何以干净的方式映射页码和排序字段的参数?(我目前正在使用 地图资源:x 对于我应用程序中的每个资源)

    还有其他我应该知道的绩效问题吗?(例如缓存)

    提前谢谢。

    编辑 我把这个问题重新表述成了一个更复杂的问题 generic one ,希望我能得到更多答案。我将投票结束这一次,因为它不再相关。谢谢你的回答疯狂的梦想家和vrish88。

    2 回复  |  直到 9 年前
        1
  •  5
  •   insane.dreamer    17 年前

    你试过will_paginate吗?有什么原因不能满足你的特殊需求吗?( http://github.com/mislav/will_paginate/tree/master )

        2
  •  2
  •   vrish88    17 年前

    我建议你看看这篇文章:

    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的,简单易用的!