Rails - 'will_paginate'插件如何工作?

时间:2012-06-29 16:22:26

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

Will_paginate插件允许任何ActiveRecord获取分页。

实际上,此ActiveRecord中提供了paginate方法。例如,如果我想分页Order,我会这样做:

Order.paginate page:params[:page], order: 'created_at desc'

如何创建paginate方法?这是Will_paginate插件,它执行某种操作:“采用ActiveRecord定义并将paginate方法注入?

此外,为了保持这个例子,如果上述假设是正确的:

如果出于某种原因,如何避免与插件冲突,Order已经定义了一个完全不同目的的正确分页?

1 个答案:

答案 0 :(得分:2)

will_paginate使用extend方法将模块添加到ActiveRecord :: Base类。见https://github.com/mislav/will_paginate/blob/master/lib/will_paginate/active_record.rb#L202

如果Order也有一个名为paginate的方法,那么它将覆盖ActiveRecord :: Base #paginate方法。