メソッドチェーンなどで長くなった一連の処理を別名をつけて短い名前で呼び出せるようにしたもの。モデルで定義する。
複雑なSQLを記述する時に便利。
スコープを定義する際、別で定義したスコープを使うこともできる。
#モデルで定義 class User < ActiveRecord::Base scope :user_select, -> { where(user_id: 1).limit(10) } end #コントローラー等で使用 class PostsController < ApplicationController posts = Post.user_select end #引数を取ることもできる scope :user_select, -> (count) { where(user_id: 1).limit(count) }
参考
https://qiita.com/ozin/items/24d1b220a002004a6351
https://pikawaka.com/rails/scope