古いバージョンのドキュメントです。最新のバージョンはRails7.0.0

Railsドキュメント(v6.0.2.1)

scopeを使ってモデルを拡張

説明

モジュールやブロックメソッドを引数に与えて、モデルをscopeで拡張
返されたオブジェクトをさらに拡張することもできる

使い方

モデル.extending(モジュール)

モジュール

module Pagination
  def page(number)
    # pagination code goes here
  end
end

scope = Model.all.extending(Pagination)
scope.page(params[:page])

ブロック

module Pagination
  def page(number)
    # pagination code goes here
  end
end

scope = Model.all.extending do
  def page(number)
    # pagination code goes here
  end
end
scope.page(params[:page])

ソースコード