WillPaginate这个插件很棒,以至于其取代了Rails中原有的Paginate方法,虽然看上其很简单,其实还是有不少技巧的,本篇用来记录我遇到的或者使用到的一些tips。
1.直接使用paginate
这个比较简单,也是使用的最多的,如下:
Ruby代码
-
def
self
.get_all_items_in_catelog( catelog_id,page,per_page=
"10"
)
-
paginate :per_page
=> per_page,
:page
=> page,
-
:conditions
=>[
"catelog_id = ? and caiji > 0"
,catelog_id],
-
:order
=>
'created_at DESC ,updated_at DESC'
-
end
2.使用Model.paginate_by_sql
有的时候,你需要的SQL用Rails拼的时候有些不方便,这个时候可以考虑使用paginate_by_sql来实现,这个没啥好说的,你需要什么样的SQL直接写就可以了,例如:
#排行榜列表
Ruby代码
-
def
self
.get_all_items_in_rank(rank_id, page,per_page=
"10"
)
-
Book.paginate_by_sql ["SELECT DISTINCT `books`.* FROM `books` LEFT OUTER JOIN `ranksorts`
-
ON (`books`.`prodid` = `ranksorts`.`prodid`) LEFT OUTER JOIN `ranks`
-
ON (`ranks`.`id` = `ranksorts`.`rank_id`) WHERE (ranks.id = ?)
-
ORDER BY books.updated_at DESC,books.created_at DESC"
, rank_id],
-
:page
=> page,
:per_page
=> per_page
-
end
还有其他的一些小技巧,慢慢添加,你如果有类似的技巧,期待您的分享。。
分享到:
相关推荐
**Ruby on Rails** 是一个流行的全栈 web 应用框架,`will_paginate` 与其集成后,可以轻松地在 ActiveRecord 查询中实现分页功能。例如,只需一行代码,开发者就能将数据库查询结果分页: ```ruby @posts = Post....
在Rails中,最常用的分页库是`Kaminari`和`WillPaginate`。这里我们将以`Kaminari`为例进行讲解,因为它是近年来更受欢迎的选择,且具有简洁的API和良好的社区支持。 1. **安装Kaminari** 在Gemfile中添加`...
在Rails中,Kaminari和WillPaginate是两个广泛使用的分页库。它们允许开发者轻松地在页面间导航,并限制每次加载的数据量,提高页面性能。分页插件通常通过简单的API集成到控制器和视图中,提供友好的URL结构和可...
**will_paginate分页插件详解** 在Web开发中,数据分页是一项常见的需求,它可以帮助用户更有效地...在实际项目中,结合`will_paginate`的高级用法,我们可以创建出高效、友好的分页界面,提升用户在Web应用中的体验。
支持Kaminari和WillPaginate分页 与Rails的仪器框架集成 用于生成示例Rails应用程序的模板 Elasticsearch 项目提供了Elasticsearch客户端和Ruby API。 安装 从安装每个库: gem install elasticsearch-model gem ...
而`will_paginate`则是一个非常流行的分页库,它与`scaffolding`结合使用,能够为你的Rails应用添加优雅的分页功能。 `will_paginate`库由Matias Berezin创建,它的设计简洁且易于使用。它不仅提供了分页的基本功能...
include WillPaginate::ModelMethods end ``` 3. 查询分页数据:在控制器中,使用`paginate`方法查询分页数据: ```ruby @posts = Post.paginate(page: params[:page], per_page: 20) ``` 这里,`page`参数表示...
- **自定义分页类**:如果你需要更复杂的逻辑,可以创建自定义分页类并继承`WillPaginate::Collection`。 ### 总结 will_paginate v2.3.11作为一款强大的Rails分页插件,以其简洁的API、良好的兼容性和高度的可...
9. **可扩展性**:如果默认的分页行为不满足需求,开发者可以通过继承和重写 `WillPaginate::ViewHelpers` 的方法来自定义分页逻辑。 在 `mislav-will_paginate-94de8c93973c2ac4fa27f75c2b03b135ed854264` 这个...
`will_paginate 2.2.2`是Rails应用程序中用于处理数据分页的一个强大工具。通过简洁的API,开发者可以轻松地实现高效的数据加载,提高用户体验,同时减轻服务器负担。虽然现在有更新的版本可供选择,但对于旧项目,...
它提供了简洁、灵活的API,使得在Rails应用中实现数据库查询结果的分页变得简单易行。在本篇文章中,我们将深入探讨`Will_Paginate`的原理、安装、使用方法以及一些高级特性。 ### 1. 安装 要在Rails项目中使用`...
12. **Kaminari** 和 **WillPaginate**:分页插件,帮助处理大量数据的显示。 13. **Ransack**:提供强大的搜索和过滤功能,让用户可以根据需要自定义搜索条件。 14. **SimpleForm** 和 **Formtastic**:简化Rails...
4. **分页和过滤**:在构建API时,通常需要支持分页和过滤数据。Rails API可以通过Gem(如Kaminari或WillPaginate)轻松实现这些功能。 5. **版本控制**:API的版本控制很重要,Rails API允许你为不同版本的API创建...