rails2.0后的will_paginate插件

原先开发用的instantRails中的rails版本较低,是1.2.3,这次换了个高版本的,2.0.2.发现原来的分页方法不能用了,上网查了一下原理2.0版本后取消了这个方法,用will_paginate插件代替了。
安装方法:
gem install mislav-will_paginate --source http://gems.github.com  
安装成功后提示:
Successfully installed mislav-will_paginate-2.3.2 
Installing ri documentation for mislav-will_paginate-2.3.2...  
Installing RDoc documentation for mislav-will_paginate-2.3.2... 
升级也一样,只需要将上面的install改为update.
安装之后需要修改config/environment.rb文件 ,在最后加如require ‘will_paginate’
RAILS_GEM_VERSION = '2.1.0' unless defined? RAILS_GEM_VERSION  
require File.join(File.dirname(__FILE__), 'boot')  
 
Rails::Initializer.run do |config|  
  #....  
end 
require 'will_paginate'
这样总是安装最后的版本,如果需要安装指定的版本,可以这样:
gem 'mislav-will_paginate', '2.1.0' 
gem 'mislav-will_paginate', '>=2.1.0' 
gem 'mislav-will_paginate', '~>2.1' # this will load any 2.x version (greater or equal to 2.1),  
                                    # but not 3.x  
现在就可以用了
修改原来的controller中的代码
def cunzhuang
  @cunzhuangs=Country.find(:all)
end
为:
def cunzhuang
  @cunzhuangs = Country.paginate  :page => params[:page],
                                  :per_page => 5
end
rhtml页面中加入:<%= will_paginate @cunzhuangs, :prev_label   => '上一页',  :next_label   => '下一页' %>
效果图:
( 迁)

(三龙庄)

(桃园)

105国道流泽大桥收费站

220国道收费站

上一页 1 2 3 4 5 6 7 8 9 … 99 100 下一页
但是这个不能实现我的要求,因为我的数据列表用放在一个div中的,我需要点击任何一个页面都只在固定div里面变化,而这个跳转到一个新的页面。继续找方法。

你可能感兴趣的:(Rails)