Ruby on Rails の scopeを使ってModelから上手にデータ取得!

Ruby on Railsのscopeについてご紹介いたします。

DBテーブルからwhereなどの条件をしてデータを取得したい場合がありますよね。

そのような場合、scopeは以下のように使います。

class Item
    scope :strong, -> {where(is_strong: true)}
    scope :strong_level, -> (level) {where("strong_level > ?", level)}
end

Item.strong # => is_strongがtrueのデータを取得
Item.strong_level(5) # => strong_levelが5以上のデータを取得
Item.strong.strong_level(5) # => 組み合わせも可能!

ポイントは以下の通りです。

  • Modelにscopeで条件を定義します。
  • Model名のあとにscope名を書けば取得できます。

よく使われるので覚えておくといいですね(*^^*)

 

なにか参考になれば幸いです(*^^*)