关于rails学习中分页的示例

环境:ruby 1.8.7  rails 2.3.5 gem 1.3.5 mysql5

 

废话不多,速度演示

 

1.创建一个演示demo

rails pagination -d mysql

修改config/databse.yml数据库配置

 

2.创建数据库

cd pagination

rake db:create #创建数据库

 

3.创建一个USER对象

ruby script/generate scaffold user name:string age:integer #创建脚手架代码,基本CRUD

 

4.安装will_paginate插件

gem install will_paginate #安装插件,傻瓜方法

 

5.加载will_pageinate

打开config/environment.rb,添加

Rails::Initializer.run do |config|

  ...

end


require "will_paginate" #加载will_paginate

 

6.修改每页显示数

例:

class User < ActiveRecord::Base

cattr_reader :per_page       #设置每页记录数,此处每页3条

        @@per_page = 3

end

 

7.修改controller

修改index方法,加入

@users = User.paginate( :page => params[:page], :order => 'name') #通过page参数进行分页,并按name自带排序

 

默认代码:

@users = User.find(:all) #默认代码可能是这样的,查找所有,并未分页

 

8.修改模板文件index.html.erb

加入翻页代码

<%= will_paginate @users ,:prev_label => '上一页', :next_label => '下一页'%>

具体可以自己设定 pre_label 名称

 

9.启动服务器

ruby script/server

 

10.访问http://127.0.0.1:3000/users

 

 

可能碰到的问题

1.说什么paginate方法未定义,检查上面第5步,估计是will_paginate没加载,忘了,或者插件没安装

 

2.在模板中说什么each方法未定义啥的,重启下服务器,就是重复第9步

 

3.其他情况,有时重复下第9步蛮有效的

 

 

参考资料

1.http://blog.csdn.net/kunshan_shenbin/archive/2009/05/14/4182610.aspx

基本安装他的说法照做就能实现

 

2.http://github.com/mislav/will_paginate

插件下载地址,并附简单说明

 

3.http://wiki.github.com/mislav/will_paginate/installation

2中的安装说明


你可能感兴趣的:(.net,mysql,Ruby,Rails,ActiveRecord)