Railsドキュメント

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])

ソースコード