extending(*modules, &block)
Instance Public methods
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
1 2 3 4 5 6 7 8 | 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:
1 | scope = Model.all.extending(Pagination, SomethingElse) |
Using a block
1 2 3 4 5 6 | 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:
1 2 3 4 5 | scope = Model.all.extending(Pagination) do def per_page(number) # pagination code goes here end end |
Please login to continue.