extending(*modules, &block) public

Used to extend a scope with additional methods, either through a module or through a block provided.

The object returned is a relation, which can be further extended.

Using a module

module Pagination def page(number) # pagination code goes here end end scope = Model.all.extending(Pagination) scope.page(params[:page]) 

You can also pass a list of modules:

scope = Model.all.extending(Pagination, SomethingElse) 

Using a block

scope = Model.all.extending do def page(number) # pagination code goes here end end scope.page(params[:page]) 

You can also use a block and a module list:

scope = Model.all.extending(Pagination) do def per_page(number) # pagination code goes here end end
Show source
Register or log in to add new notes.