我有一个 Rails 4.2 框架并使用 Kaminari 进行分页。一切都很好,但我想用 Capybara 测试一切,因此我遇到了页面冲突。所以我想重命名 Kaminari 的 page_method_name 并遵循他们的指南:
$ bundle exec rails g Kaminari:config
这导致了这个文件
app/config/initializers/kaminari_config.rb
Kaminari.configure do |config|
config.page_method_name = :plant
end
其中我简单地取消了 config.page_method_name 的注释并将其设置为 :plant(作为 Kaminari 文档中的示例,以避免任何保留的方法名称冲突,例如 :kaminari_page)。 然后我将相应的控制器调整为
def index
@q = Interaction.published.order(updated_at: :desc).limit(200).ransack(params[:q])
@selection = @q.result
@interactions = Kaminari.paginate_array(@selection).plant(params[:page]).per(10)
respond_to do |format|
format.html
format.js
end
end
我重新启动了一切并在访问时出现此错误
#Kaminari::PaginatableArray:0x00005568fb42ba30 的未定义方法 `plant'
Gemfile.lock:
kaminari (1.2.1)
activesupport (>= 4.1.0)
kaminari-actionview (= 1.2.1)
kaminari-activerecord (= 1.2.1)
kaminari-core (= 1.2.1)
kaminari-actionview (1.2.1)
actionview
kaminari-core (= 1.2.1)
kaminari-activerecord (1.2.1)
activerecord
kaminari-core (= 1.2.1)
kaminari-core (1.2.1)
然后我在谷歌上搜索并添加了 require 'kaminari'(这没有多大意义,因为我没有得到 uninit 常量错误),并将 Kaminari 配置部分包含到类 Application