我一直在尝试使用Kaminari宝石进行分页,但遇到了问题。
我有一个简单的初学者项目,其中包含一个简单的模型:
class Position < ActiveRecord::Base
validates_presence_of :name
end
我在Ubuntu 10.04上运行ruby 1.9.2和rails 3.0.5。我安装了kaminari(0.10.4)。
根据我的理解,我应该能够执行Position.order(“name”)。page(1),但是当我这样做时,我得到以下内容:
ruby-1.9.2-p0 > Position.order("name").page(1)
NoMethodError: undefined method `page' for #<ActiveRecord::Relation:0xaacab34>
from /home/bob/.rvm/gems/ruby-1.9.2-p0@talentskout/gems/activerecord-3.0.5/lib/active_record/relation.rb:371:in `method_missing'
from (irb):2
from /home/bob/.rvm/gems/ruby-1.9.2-p0@talentskout/gems/railties-3.0.5/lib/rails/commands/console.rb:44:in `start'
from /home/bob/.rvm/gems/ruby-1.9.2-p0@talentskout/gems/railties-3.0.5/lib/rails/commands/console.rb:8:in `start'
from /home/bob/.rvm/gems/ruby-1.9.2-p0@talentskout/gems/railties-3.0.5/lib/rails/commands.rb:23:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
这似乎是我能得到的简单场景。任何想法都将不胜感激。
感谢。
答案 0 :(得分:16)
Rails noob在这里:完全相同的问题,但出于不同的原因 - 我发现我必须在添加kaminari gem并运行bundle install后重新启动服务器。只要提一下,以防其他人遇到同样的问题!
答案 1 :(得分:4)
我弄清楚了我的问题,它本身与Kaminari宝石无关。
在我的Gemfile中,我将gem'kaminari'子句置于我的组下:错误地测试部分。所以它没有在我的开发环境中加载。愚蠢的错误。
答案 2 :(得分:1)
我也是一个Rails noob并且有同样的错误。我可以通过将Model.all更改为Model.order(“id”)来解决问题。