ruby will_paginate的用法

新版本的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

(0)

相关推荐

  • ruby will_paginate的用法

    新版本的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\

  • 用PyQt进行Python图形界面的程序的开发的入门指引

    一般来说,选择用于应用程序的 GUI 工具箱会是一件棘手的事.使用 Python(许多语言也一样)的程序员可以选择的 GUI 工具箱种类繁多,而每个工具箱都有各自的优缺点.有些速度比其它工具箱快,有些比较小:有些易于安装,有些更适合于跨平台使用(对于这一点,还要指出,有些支持您需要满足的特定特性).当然,各种库都相应具有各种许可证. 对于 Python 程序员而言,缺省的 GUI 选择是 Tk(通过 Tkinter 绑定)- 其原因显而易见.Tkinter 和闲置的 IDE 是由 Python

  • 详解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("

  • Ruby编程中关于中断和返回的用法教程

    return,break,next 这几个关键字的使用都涉及到跳出作用域的问题,而他们的不同 则在于不同的关键字跳出去的目的作用域的不同,因为有代码块则导致有一些地方需要格外注意. return 常用方式 通常情况下的return语句和大家理解的意思是相同的. def m1 param if param == 1 return 'returned 1' end 'returned default value' # 根据Ruby语言规范,最后一条执行语句的结果将作为返回值返回,return是可选的

  • Ruby中使用each和collect进行迭代的用法

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

  • 详解Ruby语言中的注释用法与中文编码问题

    Ruby 注释 注释会对 Ruby 解释器隐藏一行,或者一行的一部分,或者若干行.您可以在行首使用字符( # ): # 我是注释,请忽略我. 或者,注释可以跟着语句或表达式的同一行的后面: name = "Madisetti" # 这也是注释 您可以注释多行,如下所示: # 这是注释. # 这也是注释. # 这也是注释. # 这还是注释. 下面是另一种形式.这种块注释会对解释器隐藏 =begin/=end 之间的行: =begin 这是注释. 这也是注释. 这也是注释. 这还是注释.

  • 深入讲解Ruby中Block代码快的用法

    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 调用时才会起作用,如果 method 中有参数,bloc

  • Ruby中gem包管理器的用法及用bundler来管理多版本的gem

    gem常用命令 gem -v # 查看RubyGems软件的版本 gem help #显示RubyGem使用帮助 gem help example #列出RubyGem命令一些使用范例 gem install [gemname] # 安装指定gem包,程序先从本机查找gem包并安装,如果本地没有,则从远程gem安装. gem install -l [gemname] # 仅从本机安装gem包 gem install -r [gemname] # 仅从远程安装gem包 gem install [g

  • Ruby 中一些百分号(%)的用法小结

    %Q 用于替代双引号的字符串. 当你需要在字符串里放入很多引号时候, 可以直接用下面方法而不需要在引号前逐个添加反斜杠 (\") 复制代码 代码如下: >> %Q(Joe said: "Frank said: "#{what_frank_said}"")=> "Joe said: "Frank said: "Hello!""" (...)也可用其他非数字字母的符号或成对的符号代替

  • 举例讲解Ruby中迭代器Iterator的用法

    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 { puts "Hello" } #

随机推荐