任何好的Rails示例/框架,用于对Ajax进行排序,过滤和分页

时间:2011-02-15 22:22:47

标签: ruby-on-rails ajax rubygems ruby-on-rails-plugins

Ruby on Rails是否有任何开源(或示例)代码可以过滤,排序和分页某个模型?此外,如果结果可以通过Ajax返回,那将是很好的。在这个Trulia网页上可以看到我正在寻找的一个很好的例子

http://www.trulia.com/for_sale/30000-1000000_price/10001_zip/

(请注意,在检查过滤器时,会更新结果而不会重新加载页面。)

这些操作(过滤,排序,分页)非常常见,以至于某人必须为此编写一些内容。我可以自己搞清楚,但我希望有一个示例代码或一个gem提供我需要的功能。而且,我希望可以使用jQuery或原型来完成Ajax。

感谢。

3 个答案:

答案 0 :(得分:9)

你一定要结帐smart_listing gem(https://github.com/Sology/smart_listing)。

它使用kaminari进行分页,除了分类和分类。过滤,smart_listing也支持就地编辑。

这是a demo

答案 1 :(得分:7)

答案 2 :(得分:4)

对于所有ajax内容,您可以使用jquery,只需将事件添加到复选框,例如:

$(":checkbox").change(function() {
    var form = $(this).closest("form");

    form.submit() // if you use the jquery form plugin http://jquery.malsup.com/form/

    //or
    $.ajax({
        url: form.attr("action"),
        type: "POST",
        dataType: "script",
        data: form.serialize()

    })
})

根据从表格

收到的参数,可以使用查询轻松完成过滤和排序
Model.where(...).order(...).paginate(:per_page => 1, :page => params[:page])

您可以使用will_paginatehttps://github.com/mislav/will_paginate)进行分页。这是一个伟大的宝石。

如果您使用dataType:“html”,您可以更新与控制器操作匹配的.js.erb文件中的页面,或者更新ajax调用的成功回调中的页面。