ruby will_paginate的用法_ruby专题

新版本的will_paginate已经抛弃了这样的做法,转而使用gem的方式,本文通过建立一个名为foobar的应用来了解一下will_paginate的用法。

==============================

C:\>rails foobar -d mysql

C:\>cd foobar

C:\foobar>ruby script/generate scaffold article title:string content:text

此时设置一下数据库(C:\foobar\config\database.yml),并且确保相关数据库已经建立好了。

C:\foobar>rake db:migrate

C:\foobar>ruby script/server

此时,http://localhost:3000/articles可以浏览了,添加一些数据(比如十条),为分页做准备。

===============================

plugin形式的旧版will_paginate不用在rails程序里显式的加载,这是因为rails启动时会自动执行插件目录下的init.rb文件,而新版will_pagiante采用的是gem形式,没有这样的机制,所以需要在rails程序里显式的加载:

# C:\foobar\config\environment.rb
Rails::Initializer.run do |config|
config.gem 'mislav-will_paginate', :version => '~> 2.3.2', :lib => 'will_paginate',
:source => 'http://gems.github.com'
end

此时,重启一下WEBrick,然后执行如下命令安装相应的gem:

C:\foobar>rake gems:install

安装就完成了。

修改控制器的index方法,加上类似下面的代码:

# C:\foobar\app\controllers\articles_controller.rb
@articles = Article.paginate :page => params[:page], :per_page => 2

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

# C:\foobar\app\views\articles\index.html.erb
<%= will_paginate @articles %>

再次重启一下WEBrick,然后浏览就可能看到分页效果了。

===============================

will_paginate的最新文档:http://github.com/mislav/will_paginate/wikis

时间: 2024-10-26 09:03:39

ruby will_paginate的用法_ruby专题的相关文章

浅析Ruby中的Profiling工具的用法_ruby专题

内置的profiler实现的很简单,在ruby2.2中只有150行代码,大家可以看看它的实现profile.rb .内置的profiler使用起来非常的方便,只需要加上-rprofile参数即可.例如: 执行: ruby -rprofile test.rb 输出结果为: 通过打印出的结果能够很明显的看出耗时的方法.内置的profiler很简单,只能打印出这样的结果,没有 其他输出格式的选项,下面介绍的其他几种都有丰富的格式输出.ruby-prof repo: https://github.com

深入讲解Ruby中Block代码快的用法_ruby专题

Block 定义 some_array.each { |value| puts value + 3 } sum = 0 other_array.each do |value| sum += value puts value / sum end     A block is somewhat like the body of an anonymous method     Block can take parameters     Block 只有被 method 调用时才会起作用,如果 meth

详解Ruby中的循环语句的用法_ruby专题

Ruby 中的循环用于执行相同的代码块若干次.本章节将详细介绍 Ruby 支持的所有循环语句.Ruby while 语句语法 while conditional [do] code end 当 conditional 为真时,执行 code.while 循环的 conditional 通过保留字 do.一个换行符.反斜线 \ 或一个分号 ; ,来与 code 分离开. 实例 #!/usr/bin/ruby $i = 0 $num = 5 while $i < $num do puts("I

ruby will_paginate的用法

老版本的will_paginate是基于plugin方式的,其安装方式如下:ruby script/plugin install svn://errtheblog.com/svn/plugins/will_paginate 新版本的will_paginate已经抛弃了这样的做法,转而使用gem的方式,本文通过建立一个名为foobar的应用来了解一下will_paginate的用法. ============================== C:\>rails foobar -d mysql

实例解析Ruby程序中调用REXML来解析XML格式数据的用法_ruby专题

REXML 是由 Sean Russell 编写的库.它不是 Ruby 的唯一 XML 库,但它是很受欢迎的一个,并且是用纯 Ruby 编写( NQXML 也是用 Ruby 编写的, 但 XMLParser 封装了用 C 编写的 Jade 库). 在他的 REXML 概述中,Russell 评论道: 我有这样的问题:我不喜欢令人困惑的 API.有几种用于 Java 实现的 XML 解析器 API.其中大多数都遵循 DOM 或 SAX,并且在基本原理上与不断出现的众多 Java API 非常相似.

举例讲解Ruby中迭代器Iterator的用法_ruby专题

Iterator 定义 A Ruby iterator is simple a method that can invoke a block of code.         Block 一般是跟着 method 出现的, 并且 block 中的代码不一定会执行         如果 method 中有 yield, 那么它的block 中的代码会被执行         Block 可以接收参数,和返回 value def two_times yield yield end two_times

Ruby中使用each和collect进行迭代的用法_ruby专题

迭代器是什么也不是,但集合的方法支持.存储一组数据成员的对象被称为集合.在Ruby中,数组和哈希可以被称为集合. 迭代器返回一个集合的所有元素,一前一后.我们将讨论两个迭代器,在这里,每个收集.让我们来看看这些细节. Ruby each 迭代: 每个迭代器返回一个数组的所有元素或哈希. 语法: collection.each do |variable| code end 在集合中的每个元素执行的代码.这里收集可能是一个数组或ruby哈希. 例子: #!/usr/bin/ruby ary = [1

ruby 标准类型总结_ruby专题

一.数字 Ruby支持整数和浮点数,整数可以是任意长度 一定范围内的整数以二进制存放,它们属于fixnum类型,当超出这个范围时则自动转换为bignum类型 表达方式:符号+一串字符,数字串中的下划线会被忽略,(前缀包括:0表示八进制, 0x表示十六进制, 0b表示二进制)123_456_789_123_345_789 # Bignum0xaabb # 十六进制 也可以通过在前面加上问号来得到ASCII码字符对应的整数值和转义序列的值?a # 普通字符?\n # 换行符 (0x0a)?\C-a

详解Ruby中的异常_ruby专题

异常和执行总是被联系在一起.如果您打开一个不存在的文件,且没有恰当地处理这种情况,那么您的程序则被认为是低质量的. 如果异常发生,则程序停止.异常用于处理各种类型的错误,这些错误可能在程序执行期间发生,所以要采取适当的行动,而不至于让程序完全停止. Ruby 提供了一个完美的处理异常的机制.我们可以在 begin/end 块中附上可能抛出异常的代码,并使用 rescue 子句告诉 Ruby 完美要处理的异常类型. 语法 begin # - rescue OneTypeOfException #