0

Will_paginate插件允许对任何 ActiveRecord 进行分页。

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

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

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

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

Order如果出于某种原因定义了具有完全不同目的的适当分页,如何避免与插件发生冲突?

4

1 回答 1

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 方法。

于 2012-06-29T16:43:47.093 回答