Method: ActiveRecord::QueryMethods#extending
- Defined in:
- activerecord/lib/active_record/relation/query_methods.rb
#extending(*modules, &block) ⇒ Object
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
1434 1435 1436 1437 1438 1439 1440 |
# File 'activerecord/lib/active_record/relation/query_methods.rb', line 1434 def extending(*modules, &block) if modules.any? || block spawn.extending!(*modules, &block) else self end end |