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名を書けば取得できます。
よく使われるので覚えておくといいですね(*^^*)
なにか参考になれば幸いです(*^^*)