Ruby on Rails是否有任何开源(或示例)代码可以过滤,排序和分页某个模型?此外,如果结果可以通过Ajax返回,那将是很好的。在这个Trulia网页上可以看到我正在寻找的一个很好的例子
http://www.trulia.com/for_sale/30000-1000000_price/10001_zip/
(请注意,在检查过滤器时,会更新结果而不会重新加载页面。)
这些操作(过滤,排序,分页)非常常见,以至于某人必须为此编写一些内容。我可以自己搞清楚,但我希望有一个示例代码或一个gem提供我需要的功能。而且,我希望可以使用jQuery或原型来完成Ajax。
感谢。
答案 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_paginate
(https://github.com/mislav/will_paginate)进行分页。这是一个伟大的宝石。
如果您使用dataType:“html”,您可以更新与控制器操作匹配的.js.erb文件中的页面,或者更新ajax调用的成功回调中的页面。