作者godfat (godfat 真常)
看板Ruby
标题Re: [RoR ] 新手问题 -- Paginate 无法使用?
时间Sat Dec 13 17:13:04 2008
※ 引述《cuteman0725 (Q面)》之铭言:
: Ruby 苦手又来问问题了~~这次是有关於 will_paginate 的问题~
: .环境:Windows + ruby 1.8.6-287 + rails 2.2.2 + will_paginate 2.2.2
: .问题描述:
你的问题描述很清楚,连错误讯息抓图都有,可以算发问典范之一了 XD
rails 自某个版本(忘记是哪个了)之後移除 pagination 的东西,
一般建议就是使用 will_paginate 没错。
: 6.安装 classic_pagination
别灌这个了,rails 更新速度之快(应该说 break code 速度),
搞不好是所有 framework 里面最快的... 连 minor update,
2.x.y 那个 y 数字改了都有可能不相容,classic_pagination 我猜
早就不能用了...
像是 in_place_editing 很多人都在用,但官方的在 2.2.2 也是烂的。
逼不得已,只好自己 fork 来改:
http://github.com/godfat/in_place_editing
感觉 rails developer 对 in_place_editing 没有爱...
更遑论这大概没有人在用的 classic_pagination 了。
: 5.下指令:gem install will_paginate
: 6.修改 config/environment.rb,在最後一行加入 require 'will_paginate'
: 7.重开 web service,出现了一开始的错误 undefined method `paginate'
: http://i218.photobucket.com/albums/cc282/cuteman0725/pagenation_class.jpg
will_paginate 的用法不是这样用的。另外既然你都用 rails 2.2.2 了,
就改用 config.gem 的方式吧。修改 environment.rb, 找到:
Rails::Initializer.run do |config|
在里面加入:
config.gem 'will_paginate', :version => '>=2.2.2'
这告诉 rails 你的程式 depend on will_paginate 2.2.2 以上的版本,
载入环境时也会自动 require 'will_paginate'.
如果你需要 require 其他 lib, 例如 rmagick 是要 require 'RMagick',
则写:
config.gem 'rmagick', :version => '>=2.5.2', :lib => 'RMagick'
这样会比你单纯使用 require 要来得好。
至於 will_paginate 的用法,参考:
http://github.com/mislav/will_paginate
类似这样:
@posts = Post.paginate :page => params[:page], :per_page => 50
跟 classic_pagination 用法有不小的差异。(大概啦,有点忘了...)
==
最後广告一下,基本上我是讨厌 will_paginate 的作法,rails 很多
plugin 的写法都很肮脏,除了换版本可能会挂掉外,灌一堆也很容易互相冲突。
因此我写了个自己的分页工具:
http://github.com/godfat/pagify
用起来可能没有 will_paginate 方便,因为很多东西我觉得太自动是会出事的。
因此暂时还没有 <%= will_paginate @posts %> 这麽方便的东西。
有兴趣的话可以试用看看,有任何问题和想法欢迎跟我讨论,感谢。
安装可以用 git clone 下来或下载 tarball (那个 download 的按钮)
然後安装 gem install bones. 接着到 pagify 的目录下指令:
rake gem:install
即可以安装最新的版本。或是安装可能不是最新的版本:
gem install godfat-pagify --source
http://gems.github.com
再过一段时间我就会发布正式版到 rubyforge 上,现阶段还在测试,
有不少功能还没加上去。
--
#!/usr/bin/env ruby [露比] /Programming (Kn|N)ight/ 看板《Ruby》
# if a
dog nailed
extra legs that
http://webptt.com/cn.aspx?n=bbs/Ruby/index.html
#
walks like an octopus, and Welcome ~
Ruby@ptt~
#
talks like an octopus, then
◢█◣ http://www.ruby-lang.org/
# we are happy to treat it as
█ http://www.ruby-doc.org/
# if it were
an octopus.
◥ ◤ http://www.rubyforge.org/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.28.18