`
Auckland
  • 浏览: 29744 次
  • 性别: Icon_minigender_1
  • 来自: 新西兰
文章分类
社区版块
存档分类
最新评论

rails 分页问题

阅读更多
在程序里面有一个array。
里面装着里面装的杂七杂八的东西。
虽然都是根据Model.find()得到的。
但是却是从几个不同的model(table)中得到的。
然后根据某个特定的关系,选定顺序的放进去的。
个别页面比较大。想做一下分页。
自己简单写了一个。只支持上一页,下一页之类的东西。
不像will_paginate插件那么完美。
但是可以用了。
因为其他地方都是用的will_paginate,所以这里感觉比较奇怪。
因为array是由多个model中的数据组成的。
所以,用 Model.paginate :conditions=>......
应该不行吧。


不知道will_paginate可不可以直接对一个array分页呢?

分享到:
评论
6 楼 Stainlesssteel 2008-02-13  
如果能用sql得出那个array,还是尽量用 paginate_by_sql
5 楼 rainchen 2008-02-12  
Auckland 写道
十分感谢。问题已经解决了。另外,我找到了这个。大家可以看看。 http://www.desimcadam.com/archives/8


will_paginate正是接纳了他的提议,可参见 will_paginate/lib/will_paginate/core_ext.rb:

require 'will_paginate/collection'

unless Array.instance_methods.include? 'paginate'
  # http://www.desimcadam.com/archives/8
  Array.class_eval do
    def paginate(page = 1, per_page = 15)
      WillPaginate::Collection.create(page, per_page, size) do |pager|
        pager.replace self[pager.offset, pager.per_page].to_a
      end
    end
  end
end

在其blog评论中也可看到 Chris 的回复。
4 楼 rsu 2008-02-05  
哇,楼主也在akl么?我想知道你是否在做rails的工作?能不能留下联系方式?
3 楼 Auckland 2008-02-05  
rainchen 写道
will_paginate已经给Array添加了paginate(page = 1, per_page = 15)
方法,并可以配合其view helper使用(如果不嫌太费内存的话),用法就如Model.paginate()的结果一样。

十分感谢。问题已经解决了。另外,我找到了这个。大家可以看看。
http://www.desimcadam.com/archives/8
2 楼 rainchen 2008-02-04  
will_paginate已经给Array添加了paginate(page = 1, per_page = 15)
方法,并可以配合其view helper使用(如果不嫌太费内存的话),用法就如Model.paginate()的结果一样。
1 楼 carlosbdw 2008-02-04  
网上好像有如何对数组,hash进行分页的,不过都挺麻烦。

相关推荐

    关于rails学习中分页的示例

    在Rails开发中,分页是常见的功能,用于处理大量数据并优化用户体验。当我们从数据库查询数据时,一次性加载所有记录可能会导致性能问题,尤其是当数据量庞大时。因此,分页成为了解决这一问题的关键技术。这篇关于...

    rails 2.0.2 分页 需另外下载插件

    在Ruby on Rails框架中,`Rails 2.0.2`是一个较早的版本,而分页功能在那个时期并不像现在的Rails应用那样内置在框架内。为了实现分页,开发者通常需要安装并使用第三方插件,比如"will_paginate"。这个插件允许你在...

    Rails的自动完成分页插件

    在这个场景中,我们关注的是Rails的自动完成、文件上传、分页以及上传进度管理相关的插件。让我们详细了解一下这些关键知识点: 1. **Rails 自动完成**: 自动完成是一种功能,允许用户在输入框中键入时提供预填...

    rails api(文档)

    4. **分页和过滤**:在构建API时,通常需要支持分页和过滤数据。Rails API可以通过Gem(如Kaminari或WillPaginate)轻松实现这些功能。 5. **版本控制**:API的版本控制很重要,Rails API允许你为不同版本的API创建...

    Ruby-Kaminari一个Rails的基于范围和引擎简洁强大可定制复杂的分页库

    总的来说,Kaminari是Rails开发中的强大工具,它为开发者提供了优雅的解决方案来处理分页问题,使得代码更加简洁,用户体验更佳。无论你是初学者还是经验丰富的开发者,Kaminari都值得你纳入到你的Rails工具箱中。

    ruby on rails API

    7. 认证与授权:Rails API通常需要处理认证和授权问题。这可以通过如Devise这样的库实现用户身份验证,而Pundit或CanCanCan则可用来处理权限控制。 8. 分页与过滤:为了提高性能和用户体验,API通常需要支持分页和...

    resume 用Ruby技术实现的search 分页的例子

    在Ruby on Rails(ROR)框架中,实现搜索和分页功能是常见的需求,尤其是在构建数据密集型Web应用时。本示例将深入探讨如何利用Ruby技术和Rails的强大特性来完成这一任务。 首先,我们需要理解搜索功能的基础:查询...

    will_paginate分页插件

    `will_paginate` 是 Ruby on Rails 框架中一个非常流行的分页插件,它为数据查询结果提供了简洁、高效的分页解决方案。这个插件的设计理念是使代码更易于阅读和维护,同时提供了一些优雅的接口来处理复杂的分页需求...

    Rails实现的简历系统

    综上所述,这个简历系统涵盖了Rails开发中的多个重要方面,从用户交互(图片上传、验证码)、数据管理(查询、分页、排序)到后台功能(邮件发送),构建了一个完整的功能集。开发者可以通过这个项目学习和实践Rails...

    rails/简易报告整理网页版

    Rails中常见的分页库有`Kaminari`和`Will Paginate`。它们允许开发者轻松地在控制器和视图中实现分页逻辑,同时提供友好的用户界面。在这个项目中,很可能使用了其中的一个分页库来处理报告列表的显示。 4. **...

    使用rails6开发纯后端API项目.zip

    Kaminari和Will Paginate是两个流行的Rails分页库,它们可以帮助我们轻松实现分页功能。 9. **Error Handling** 错误处理在API开发中非常重要。可以自定义错误类,使用`rescue_from`处理异常,并返回适当的HTTP...

    flex on rails文档

    - 性能优化:通过缓存策略、数据分页等技术提高应用程序性能。 - 错误处理和日志记录:确保应用程序能够优雅地处理错误,并通过日志记录进行调试和监控。 通过以上几个方面,我们可以看到 **Flex on Rails** 的强大...

    awesome-rails-gem-zh_CN, Rails 常用 Gem 列表 - Awesome Rails Gem 中文版.zip

    9. **NewRelic** 和 **Scout**:应用性能监控工具,可实时追踪应用程序性能,及时发现并解决问题。 10. **Sidekiq** 和 **Resque**:后台任务队列处理,用于异步处理耗时的任务,提升用户体验。 11. **DelayedJob*...

    Ruby-willpaginate一个分页库可与RubyonRailsSinatraMerbDataMapper和Sequel集成

    Ruby-on-Rails、Sinatra、Merb、DataMapper 和 Sequel 这些都是 Ruby 开发领域中的关键组件,而 `will_paginate` 是一个在这些框架中广泛使用的分页库。它提供了简单、灵活的接口,帮助开发者在处理大量数据时进行...

    will_paginate:用于Rails,Sinatra,Merb,DataMapper等的分页库

    will_paginate will_paginate是一个分页库,与Ruby on Rails,Sinatra,Hanami :: View,Merb,DataMapper和Sequel集成。 安装: ## Gemfile for Rails 3+, Sinatra, and Merbgem 'will_paginate' , '~> 3.1.0' 有关...

    InspiniaAdmin 2.5 Rails_Seed_Project

    同时,它还包含了诸如日期选择器、时间轴、表格排序和分页等功能,满足后台管理系统常见的需求。 Ruby on Rails,作为一个强大的Web开发框架,以其MVC(模型-视图-控制器)架构模式著称,强调DRY(Don't Repeat ...

    ruby on rails 常用插件下载

    `will_paginate` 插件为 Rails 应用程序提供了一种简单而优雅的方式来处理大量的数据集合,避免一次性加载所有记录导致的性能问题。它允许开发者轻松地在页面之间导航,同时保持 URL 的简洁和可书签性。通过这个插件...

    跨越边界 Ajax on Rails

    3. **动态加载内容**:分页、无限滚动等,用户滚动页面时,动态加载更多内容。 4. **AJAX化的导航**:如侧边栏菜单、筛选条件等,点击后无需刷新整个页面即可更新内容。 5. **异步操作**:如用户验证、评论发布等,...

    pager-api:Rails的简单API分页

    Pager API是一个库,可帮助您基于Rails应用程序的添加meta信息和带有分页信息的适当标头。 目录 快速开始 pager_api依靠 , 和来处理分页。 您需要在pager_api gem之前将pager_api gem之一添加到pager_api : # ...

Global site tag (gtag.js) - Google Analytics