为什么will_paginate没有装入rails 3.2.8引擎?

时间:2013-01-15 04:28:54

标签: ruby-on-rails ruby-on-rails-3 will-paginate

以下是我们索引中返回@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。

代码有什么问题?

2 个答案:

答案 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)