以下是我们索引中返回@customers的代码:
@customers = Customerx::Customer.where(:active => true).order("since_date DESC, id DESC").paginate(:per_page => 30, :page => params[:page])
导致以下错误:
undefined method `paginate' for #<ActiveRecord::Relation:0x6b88960>
在调试中,ActiveRecord::Base.respond_to? :paginate
返回false
。在我们看来,即使will_paginate (3.0.3)
返回了gem list
,也未加载will_paginate。
代码有什么问题?
答案 0 :(得分:2)
通过在引擎的gemfile中添加gem will_paginate
来解决问题,即使gem will_paginate
在rails引擎的gemspec中也是如此。问题是由于ActiveRecord::Base.respond_to? :paginate
返回false而未加载gem paginate引起的。
这是一篇与此处问题有些相似的帖子。
Rails Engine - Gems dependencies, how to load them into the application?
答案 1 :(得分:1)
即使我曾经得到这个错误,所以我尝试了页面方法...使用
@customers = Customerx::Customer.where(:active => true).order("since_date DESC, id DESC").page(params[:page]).per_page(30)