索引中返回@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。
代码可能有什么问题?
通过在引擎的gemfile中添加gem will_paginate
修复了这个问题,尽管gem will_paginate
是在rails引擎的gemspec中。问题是由于ActiveRecord::Base.respond_to? :paginate
返回false而未加载gem paginate造成的。
这里有一个帖子,有点类似这里的问题。
Rails引擎- Gems依赖,如何加载到应用程序?
即使我曾经得到这个错误,所以我尝试页面方法…使用
@customers = Customerx::Customer.where(:active => true).order("since_date DESC, id DESC").page(params[:page]).per_page(30)