instance method
extending
Ruby on Rails 7.1.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 1355
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 1355
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::QueryMethods