instance method
extending
Ruby on Rails 6.0.6
Since v3.0.20Signature
extending(*modules, &block)
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
Parameters
-
modulesrest -
blockblock
Source
# File activerecord/lib/active_record/relation/query_methods.rb, line 929
def extending(*modules, &block)
if modules.any? || block
spawn.extending!(*modules, &block)
else
self
end
end
Defined in activerecord/lib/active_record/relation/query_methods.rb line 929
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::QueryMethods