在最近的项目中,用到了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里面,加上类似于这样的几句,来进行相关的默认修改:
- WillPaginate::ViewHelpers.pagination_options[ :class ] = "yourclass"
- WillPaginate::ViewHelpers.pagination_options[:previous_label ] = "前一页"
- 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集成 will_paginate-bootstrap不再维护我不再使用 Bootstrap 来使用 Rails,所以不幸的是,我不再接受请求请求或者维护这个库。 为了发布你...
rails 分页插件will_paginate 2.2.2
rails 分页插件will_paginate
rails 分页插件will_paginate 2.1.0
Rails Engine扩展了样式以匹配Twitter的 4工具包中的分页样式约定。 安装 添加到您的Gemfile: gem 'will_paginate-bootstrap4' 用法 <%= will_paginate @clients, renderer: WillPaginate::ActionView::...
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' 有关...
will_paginate will_paginate是一个分页库,与Ruby on Rails,Sinatra,Hanami :: View,Merb,DataMapper和Sequel集成。 安装:##用于Rails 3 +,Sinatra和Merb的Gemfile gem'will_paginate','〜> will_paginate ...
rails2.0的内容管理系统,可以发布文档、CVS库和Web资源3中资源,其中文档可以上传下载附件。支持打Tag。用户注册登录使用restful_authentication,分页使用will_paginate,Gem版本1.3.5
will_paginate - 一个分页库可与Ruby on Rails, Sinatra, Merb, DataMapper和Sequel集成
MySQL 数据库使用以下命令生成所需的控制器和模型:rails generate Gems 添加到 Gemfile: mysql2,devise,will_paginate 使用 Devise 实现用户认证分页是使用 will_paginate gem 实现的在您的系统上运行项目Ruby...
分页:will_paginate 文件元数据:适合 后台作业:resque + redis 性能:Rails 低级缓存到本地磁盘存储 图像处理:ImageMagick、RMagick gem apache/nginx + 乘客 必须安装 mod_xsendfile,见 ** 你必须确保模块...
# gem 'will_paginate' # gem 'kaminari' # gem 'pagy' gem 'pager_api' 然后执行: % bundle 组态 此步骤是完全可选的 gem附带有一个安装程序,供您配置它,例如,在分页处理程序之间切换或是否包含Link标头或元...
块状 一个 Reddit 克隆,用于教授 Web 开发和 Rails 4 的基础知识。与我在导师一起制作。...will_paginate 3.0.5 - 分页库 binding_of_caller - 用于评估堆栈中的代码 Better_errors - 更强大的错误页面 安静的
自述 我第一次尝试在线市场。... Rails 应用程序 使用设计进行用户身份验证 ...使用 will_paginate gem 列出索引页面分页 使用 Figaro gem 隐藏 api 密钥和其他重要信息 使用引导程序构建的前端 Dropbox 上的资产托管
关于这个程序 这是一个仅用于练习目的的小应用程序。 设置 克隆仓库 进入应用目录 $ bundle install ... 这样,您可以链接示波器,并确保通过Kaminari或will_paginate分页能够按预期进行。 尝试通