extending

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
doc_ruby_on_rails
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.