instance method
extending
Ruby on Rails 3.2.22.5
Since v3.0.20Signature
extending(*modules)
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.scoped.extending(Pagination) scope.page(params[:page])
You can also pass a list of modules:
scope = Model.scoped.extending(Pagination, SomethingElse)
Using a block
scope = Model.scoped.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.scoped.extending(Pagination) do def per_page(number) # pagination code goes here end end
Parameters
-
modulesrest
Source
# File activerecord/lib/active_record/relation/query_methods.rb, line 243
def extending(*modules)
modules << Module.new(&Proc.new) if block_given?
return self if modules.empty?
relation = clone
relation.send(:apply_modules, modules.flatten)
relation
end
Defined in activerecord/lib/active_record/relation/query_methods.rb line 243
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::QueryMethods