LoginSignup
1
0

More than 1 year has passed since last update.

Rails scope とは わかりやすく

Last updated at Posted at 2020-04-16

Scopeとは

関連オブジェクトやモデルへのメソッド呼び出してとして参照される、よく使用されるクエリを指定できる。どのスコープメソッドも、ActiveRecord::Relationオブジェクトを返す。このオブジェクトに対して、別のスコープを含む他のメソッドを呼び出しを行うこともできる。

メリット

スコープを使うことで、繰り返し何度も呼び出すクエリをスコープにまとめることができ、汎用性とコードがすっきりする。

基本的な使い方

  • 使用したいControllerに対応するModelに記入する
  • scope :シンボル名, -> { クエリを指定 }(ラムダじゃなくても書けますdo~end)

補足

ActiveRecord::Relationオブジェクトとは

クエリを生成するための条件を持っておいて、必要に応じて適切なSQLクエリを生成・発行してくれる
その結果からオブジェクトを作って返したり、保持してくれている
例:User.all, User.where(name: ‘hoge’) などで帰ってくるものがActiveRecord::Relationのインスタンスである。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0