`

rails的分页插件will_paginate

 
阅读更多

在最近的项目中,用到了rails的分页插件will_paginate  因为是第一次使用这个插件,所以不甚了解,就在网上google

了一阵子,看了看相关的说明,明白了大概,在此记录下来,以备忘记。

      下面我就来讲解一下关于这个插件的一些注意事项,因为我是rails的初学者,所以这里用的是rails3,关于以前版本的rails,我了解的不多,在rails3中,用will_paginage有两种方式,第一种就是用plugin形式,安装方法:

这里有个viki关于安装的说明,https://github.com/mislav/will_paginate/wiki /installation,这里我只是想说一下关于这个插件的配置参数。首先,如果你是用插件安装的,那么找到vendor/plugins /will_paginate/lib/will_paginate/view_helpers.rb,这个helper就是这个插件的关于现实的 helper,

@@pagination_options  =  {  : class   =>   ' pagination ' ,
        
: previous_label =>   ' 上一页 ' ,   #这个一般是用在我们中文网站上的时候需要进行改动,默认是 << Previous
         : next_label    =>   ' 下一页 ' ,   #这个一般是用在我们中文网站上的时候需要进行改动,默认是 Next >>
         : inner_window  =>   4 ,   # inner_window  控制显示当前页临近的多少个链接 ,默认是4
         : outer_window  =>   1 , # outer_window 控制显示首/末页临近的多少个链接,默认是1

        :page_links => false, # 如果是false的时候,只显示上一页和下一页 (默认是 true)
         : separator     =>   '   ' ,   # 这个参数是用来设置页码之间 的分隔符的,用空格或者(|)或者其他的都可以
         : param_name    =>   : page ,   #这个参数是用来我们点击页码连接的时候传递的参数的名称,一般不用改动
        :class           =>  'pagination' ,  #这个是用来给分页的元素家heml的类名的,可以通过这个类名进行样式布局。
        }

 

       以上说的是你以插件的形式安装的,如果你用的而是rubygems形式安装的,那么这个配置你就需要到配置文件里面去改了,如果你的项目时2.x的,那么 你的配置文件的改动应该是在config/environment.rb里面,加上类似于这样的几句,来进行相关的默认修改:

  1. WillPaginate::ViewHelpers.pagination_options[ :class ] =  "yourclass"   
  2. WillPaginate::ViewHelpers.pagination_options[:previous_label ] =  "前一页"   
  3. WillPaginate::ViewHelpers.pagination_options[:next_label ] =  "后一页"  

       如果你的项目时3.0以上的版本的话,那么你的这个配置修改就要到 config/initalizer下新建一个文件(例如:will_paginate.rb),在这个文件里面加上类似于上面的三句的配置,来进行修改。

 

用法:

修改控制器的方法,加上类似下面的代码:
@articles = Article.paginate :page => params[:page], :per_page => 5 #这个是多少条数据。

修改对应的模板文件,加上类似下面的代码:

<%= will_paginate @articles %>

 

格式: 继承WillPaginate::ActionView::LinkRenderer文件(lib文件夹)

 

#encoding:utf-8

 

class XXXLinkRenderer < WillPaginate::ActionView::LinkRenderer

 

 

 

  protected

 

 

 

  #[ '« 首页', '‹ 前一页', '后一页 ›', '末页 »' ]

 

 

 

  def html_container(html)

 

    tag :nav, html, container_attributes

 

  end

 

 

 

  def page_number(page)

 

    if  page == current_page

 

      tag :span, page, :class => 'page current'

 

    else

 

      tag :span, link(page, page, :rel_value => nil), :class => 'page'

 

    end

 

  end

 

 

 

  def previous_or_next_page(page, text, classname)

 

 

 

    if page

 

      if classname=='previous_page'

 

        tag(:span, link('« 首页', 1), :class => 'first')+tag(:span, link(text, page), :class => classname[0..3])

 

      else

 

        tag(:span, link(text, page), :class => classname[0..3])+tag(:span, link('末页 »', total_pages), :class => 'last')

 

      end

 

    else

 

      nil

 

    end

 

  end

 

 

 

end

 

分享到:
评论

相关推荐

    will_paginate-bootstrap, 将 Twitter Bootstrap 分页组件与will_paginate集成.zip

    will_paginate-bootstrap, 将 Twitter Bootstrap 分页组件与will_paginate集成 will_paginate-bootstrap不再维护我不再使用 Bootstrap 来使用 Rails,所以不幸的是,我不再接受请求请求或者维护这个库。 为了发布你...

    will_paginate分页插件

    Rails框架中,`will_paginate`是一个非常流行且强大的分页插件,它简洁易用,功能强大,能够很好地与ActiveRecord集成。本文将深入探讨`will_paginate`的使用方法、核心概念以及其实现原理。 ### 一、安装与配置 ...

    will_paginate 2.2.2

    `will_paginate`是Rails框架中非常流行的一个分页插件,版本2.2.2是它的一个历史版本。在本文中,我们将深入探讨`will_paginate`的使用方法、功能特性以及它如何与Rails集成,帮助提升Web应用的性能和用户体验。 一...

    will_paginate插件下载

    will_paginate是一款广受欢迎的Ruby on Rails插件,用于实现高效、简洁的数据分页。在本文中,我们将深入探讨will_paginate的安装、使用方法以及其核心概念,帮助开发者更好地理解和应用这个插件。 一、will_...

    scaffolding+will_paginate+提供will_paginate下载

    而`will_paginate`则是一个非常流行的分页库,它与`scaffolding`结合使用,能够为你的Rails应用添加优雅的分页功能。 `will_paginate`库由Matias Berezin创建,它的设计简洁且易于使用。它不仅提供了分页的基本功能...

    will_paginate v2.3.11

    《will_paginate v2.3.11:Rails分页插件详解》 在Web开发中,处理大量的数据是常见的需求,特别是在使用Ruby on Rails框架时。为了优化用户体验,提高页面加载速度,分页功能显得尤为重要。这时,will_paginate...

    will_paginate 2.1.0

    `will_paginate` 是一个非常流行的 Ruby on Rails(Rails)框架中的分页库,它为开发者提供了方便的方式来处理大量数据的分页展示。版本 `2.1.0` 是这个库的一个特定版本,包含了该库在当时的一些特性、优化和可能的...

    rails 2.0.2 分页 需另外下载插件

    为了实现分页,开发者通常需要安装并使用第三方插件,比如"will_paginate"。这个插件允许你在Rails应用中轻松地对数据进行分页显示,提高用户体验并减轻服务器压力。 **1. will_paginate插件介绍** `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' , '~&gt; 3.1.0' 有关...

    WillPaginateExample:Ruby on Rails的Will_Paginate示例

    `Will_Paginate` 是一个非常流行的Ruby on Rails插件,用于处理大型数据集的分页。它提供了简洁、灵活的API,使得在Rails应用中实现数据库查询结果的分页变得简单易行。在本篇文章中,我们将深入探讨`Will_Paginate`...

    ruby on rails 常用插件下载

    在这个特定的场景中,我们关注的是一个名为 "will_paginate" 的插件,它是 Ruby on Rails 中用于实现高效、灵活分页功能的常用工具。 `will_paginate` 插件为 Rails 应用程序提供了一种简单而优雅的方式来处理大量...

    will_paginate-bootstrap4:钩入will_paginate以格式化html以匹配Twitter Bootstrap 4样式

    Rails Engine扩展了样式以匹配Twitter的 4工具包中的分页样式约定。 安装 添加到您的Gemfile: gem 'will_paginate-bootstrap4' 用法 &lt;&#37;= will_paginate @clients, renderer: WillPaginate::ActionView::...

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

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

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

    Rails提供了`will_paginate`或`kaminari`这样的插件来简化分页实现。以`will_paginate`为例,首先添加到Gemfile并安装: ```ruby gem 'will_paginate' gem 'will_paginate-bootstrap' # 如果你想使用Bootstrap样式 ...

    Rails,Sinatra,Merb,DataMapper等的分页库-Ruby开发

    will_paginate will_paginate是一个分页库,与Ruby on Rails,Sinatra,Hanami :: View,Merb,DataMapper和Sequel集成。 安装:##用于Rails 3 +,Sinatra和Merb的Gemfile gem'will_paginate','〜&gt; will_paginate ...

    ruby on rails 的小型内容管理系统

    rails2.0的内容管理系统,可以发布文档、CVS库和Web资源3中资源,其中文档可以上传下载附件。支持打Tag。用户注册登录使用restful_authentication,分页使用will_paginate,Gem版本1.3.5

    Ruby-GearedPagination以可变速度分页ActiveRecord数据集合

    传统的分页方法如`Kaminari`或`will_paginate`在处理大量数据时,会一次性加载所有分页所需的记录,这可能导致内存占用过多,从而影响应用程序的性能。`Geared Pagination`则采用了一种更聪明的策略,它根据当前的...

    MailServer:一个功能齐全的电子邮件系统,用 Ruby on Rails 编写

    MySQL 数据库使用以下命令生成所需的控制器和模型:rails generate Gems 添加到 Gemfile: mysql2,devise,will_paginate 使用 Devise 实现用户认证分页是使用 will_paginate gem 实现的在您的系统上运行项目Ruby...

    zone1:1 区救援库

    分页:will_paginate 文件元数据:适合 后台作业:resque + redis 性能:Rails 低级缓存到本地磁盘存储 图像处理:ImageMagick、RMagick gem apache/nginx + 乘客 必须安装 mod_xsendfile,见 ** 你必须确保模块...

Global site tag (gtag.js) - Google Analytics